You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					36 lines
				
				757 B
			
		
		
			
		
	
	
					36 lines
				
				757 B
			| 
								 
											6 years ago
										 
									 | 
							
								#!/usr/bin/env python3
							 | 
						||
| 
								 | 
							
								from multiprocessing import Process
							 | 
						||
| 
								 | 
							
								from setproctitle import setproctitle
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import numpy as np
							 | 
						||
| 
								 | 
							
								from common.realtime import sec_since_boot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def waste(pid):
							 | 
						||
| 
								 | 
							
								  # set affinity
							 | 
						||
| 
								 | 
							
								  os.system("taskset -p %d %d" % (1 << pid, os.getpid()))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  m1 = np.zeros((200,200)) + 0.8
							 | 
						||
| 
								 | 
							
								  m2 = np.zeros((200,200)) + 1.2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  i = 1
							 | 
						||
| 
								 | 
							
								  st = sec_since_boot()
							 | 
						||
| 
								 | 
							
								  j = 0
							 | 
						||
| 
								 | 
							
								  while 1:
							 | 
						||
| 
								 | 
							
								    if (i % 100) == 0:
							 | 
						||
| 
								 | 
							
								      setproctitle("%3d: %8d" % (pid, i))
							 | 
						||
| 
								 | 
							
								      lt = sec_since_boot()
							 | 
						||
| 
								 | 
							
								      print("%3d: %8d %f  %.2f" % (pid, i, lt-st, j))
							 | 
						||
| 
								 | 
							
								      st = lt
							 | 
						||
| 
								 | 
							
								    i += 1
							 | 
						||
| 
								 | 
							
								    j = np.sum(np.matmul(m1, m2))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def main(gctx=None):
							 | 
						||
| 
								 | 
							
								  print("1-2 seconds is baseline")
							 | 
						||
| 
								 | 
							
								  for i in range(4):
							 | 
						||
| 
								 | 
							
								    p = Process(target=waste, args=(i,))
							 | 
						||
| 
								 | 
							
								    p.start()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								  main()
							 | 
						||
| 
								 | 
							
								
							 |