Eratosthenesのふるいを分割したふるいで、CPUのL1キャッシュを使用してPythonで実装する方法を検討しています。L1 CPUキャッシュを使用したC++アルゴリズムのPython実装
githubに私自身のバージョンがあります:https://github.com/nick599/PythonMathsAlgorithms/blob/master/segmented_soe_v6.py、これはCPUのL1キャッシュサイズを使用しません。
L1キャッシュサイズを使用してC++実装を提供する次のサイト - http://primesieve.org/segmented_sieve.htmlが見つかりました。それは私のアルゴリズムよりもはるかに高速であると言います(私は10^7までの素数を作るのに数分かかり、メモリー使用のために10^8にハングアップします)。
私はLinux Mint v17、python version:2.74で開発しています。 更新私のCPUはIntel i7です。
私はかなり新しいpythonです。
私が知りたい:
- を、私はこのC++アルゴリズムのPythonのバージョンを実装し始めることができる方法は?
- 私は何を考慮する必要がありますか?
- Python 2.74でコーディングできないものはC++実装にありますか?
- マルチスレッドはどうですか?
- ハイパースレッディングはどうですか?
- pythonのGILはどうですか?
上記のすべての質問の精神に答える答えを探してください。ヒントやヒントを歓迎します。