您好,我对EC2实例还很陌生,但是我希望我的EC2 ubuntu服务器尽可能强大。这就是为什么我选择了t2.2xlarge实例,该实例具有8个CPU和32GiB的内存。 但是,我觉得它的性能与我用来运行python脚本的“免费”版本相比是相同的。 当我查看计算机上的CPU使用率时,它说只有8%。
如何利用更多的CPU?
在我的脚本中,我基本上执行以下操作。这样,每个函数调用应使用一个CPU。但是,当我再次检查CPU使用率时。它表明只使用了8%的CPU,而每个CPU应该专用于一项功能任务?
import multiprocessing as mp
# each process will use each CPU
pool = mp.Pool(mp.cpu_count())
results=[]
for ii in range(0, len(tmpDF_forPeerGroup)):
pool.apply_async(construct_each_company, args=(tmpDF_forPeerGroup, ii), callback=collect_result)
pool.close()
# postpones the execution of next line of code until all processes in the queue are done.
pool.join()
# Step 5: Sort results [OPTIONAL]
results.sort(key=lambda x: x[0])
finalListForCompanies = [r for (ii, r) in results]