0. 基礎並行/發:multiprocessing/threading
1. concurrent
2. 並發:asynico
3. Ipython下的並行計算:
使用ipyparallel庫的IPython提供了前所未有的能力,將科學Python的探索能力與幾乎即時訪問多個計算核心相結合。系統可以直觀地與本地或網絡的計算節點集群進行交互,而不管集群的實現方式如何。
這種易於交互使用幫助IPython和Python成為各種學科的科學計算和數據科學的流行工具。https://ipyparallel.readthedocs.io/en/latest/demos.html
https://ipyparallel.readthedocs.io/en/latest/demos.html
4. 分布式消息異步任務隊列:
Celery是基於分布式消息傳遞的異步任務隊列/作業隊列。它專注於實時操作,但也支持調度。
執行單元(稱為任務)使用多處理,Eventlet或gevent在單個或多個工作服務器上並發執行。任務可以異步(在后台)或同步執行(等到准備好)。
Celery用於生產系統,每天處理數百萬個任務。
5. Parallel Python:https://www.parallelpython.com/content/view/15/30/
6. mpi: 進程間通信,mpi4py
7. 分布式發行版:Intel®Distributionfor Python 。https://software.intel.com/en-us/distribution-for-python
8. 計算加速:numba
9. 分布式計算框架:spark, dask
https://wiki.python.org/moin/ParallelProcessing
https://www.imooc.com/article/17970?block_id=tuijian_wz
https://github.com/pgiri/dispy
10. 時下較活躍的庫
https://github.com/ray-project/ray
https://pathos.readthedocs.io/en/latest/pathos.html#module-pathos.multiprocessing
https://pycos.sourceforge.io/tutorial.html#asynchronous-concurrent-programming
windows 下只能試下pathos了,ray不行
11. scoop不活躍了啊
同時,Python社區的最新趨勢不是在集群上分配任務,而是將它們放在高性能GPU上(大多數超級計算機將在不久的將來成為GPU)。有許多Python庫來處理這些任務,包括綁定到OpenCL和CUDA。
https://hpc-carpentry.github.io/hpc-python/06-parallel/
數據密集型與計算密集型融合?
https://www.quora.com/Is-there-any-Deep-Learning-library-that-works-on-MPI-Spark-or-any-distributed-platform-without-using-any-GPUs