私はC++の人です。私は並列処理が大好きで、HPCアプリケーションが好きで、OpenMPもよく知っています。今、私はPythonを学んでおり、私は基本を知っています。簡単にPythonで並列を実装するには?
私のPythonスキルを向上させるための個人的なプロジェクトとして、Elkan algorithm for k-meansの並列バージョンを実装したいと思います。このアルゴリズムのCおよびOpenMPで実装された並列バージョンはpresent in VLFeatです。
今、私はPythonでElkanアルゴリズムを簡単に実装する方法を知っています...しかし、並列性はどうですか? OpenMPについての素晴らしい点は、シリアルコードを取得し、#pragma omp parallel for
とSBAMを追加することです。これは並列です!
どうすればPythonで同様のことを達成できますか?あるいは、並列アルゴリズムを最初から設計しなければならない、すなわち、直列バージョンを最初に書いておかないと、それを並列にする必要がありますが、スレッドを明示的に管理するなど(これは大きな苦痛です)?
なる:Pythonでマルチスレッドは、CPUにバインドされたアプリケーションのために(ない逆効果の場合)無用です。代わりにマルチプロセッシングが必要です。ありがとうございます[GIL](https://wiki.python.org/moin/GlobalInterpreterLock)。素晴らしいリファレンス[here](http://www.dabeaz.com/python/UnderstandingGIL.pdf) –
これはいくつかの有用な参考文献を持っているかもしれません:[NumPy/SciPy内の並列および分散プログラミング](https://www.scipy.org/topical-software.html#parallel-and-distributed-programming)。 – jdehesa