https://zhuanlan.zhihu.com/p/93305921

    1. import math
    2. import datetime
    3. import multiprocessing as mp
    4. def train_on_parameter(name, param):
    5. result = 0
    6. for num in param:
    7. result += math.sqrt(num * math.tanh(num) / math.log2(num) / math.log10(num))
    8. return {name: result}
    9. if __name__ == '__main__':
    10. start_t = datetime.datetime.now()
    11. num_cores = int(mp.cpu_count())
    12. print("本地计算机有: " + str(num_cores) + " 核心")
    13. pool = mp.Pool(num_cores)
    14. param_dict = {'task1': list(range(10, 30000000)),
    15. 'task2': list(range(30000000, 60000000)),
    16. 'task3': list(range(60000000, 90000000)),
    17. 'task4': list(range(90000000, 120000000)),
    18. 'task5': list(range(120000000, 150000000)),
    19. 'task6': list(range(150000000, 180000000)),
    20. 'task7': list(range(180000000, 210000000)),
    21. 'task8': list(range(210000000, 240000000))}
    22. results = [pool.apply_async(train_on_parameter, args=(name, param)) for name, param in param_dict.items()]
    23. results = [p.get() for p in results]
    24. end_t = datetime.datetime.now()
    25. elapsed_sec = (end_t - start_t).total_seconds()
    26. print("多进程计算 共消耗: " + "{:.2f}".format(elapsed_sec) + " 秒")