scala などの「最新の」マルチスレッドに特化した言語と、MPI、Posix、さらには Open-MP などの並列ライブラリを使用する C、C++、Fortran などの「古典的な」「低レベル」言語との間のパフォーマンスの信頼できる比較があるかどうか疑問に思います。
リンクや提案は大歓迎です。
scala などの「最新の」マルチスレッドに特化した言語と、MPI、Posix、さらには Open-MP などの並列ライブラリを使用する C、C++、Fortran などの「古典的な」「低レベル」言語との間のパフォーマンスの信頼できる比較があるかどうか疑問に思います。
リンクや提案は大歓迎です。
Java、つまり Scala が外部ライブラリを呼び出すことができ、高度に専門化された外部ライブラリがほとんどの作業を行うことを考えると、同じライブラリが使用されている限り、パフォーマンスは同じです。
それ以外の場合、そのような比較は本質的に無意味です。Scala コードは、実行時に最適化された仮想マシンで実行されます。その最適化により、長時間実行されるプログラムは、他の言語でコンパイルされたプログラムよりもパフォーマンスが向上する可能性があります (またはそうでない場合もあります)。それは、各言語で書かれた特定のプログラムに依存します。
別の非回答があります: あなたの地元のスーパーコンピューター センターに行き、関心のある各言語が CPU 負荷のどの部分を使用しているかを尋ねてください。彼らが取り組む種類の問題に取り組むとき、そのようなマシンの使用で高いパフォーマンスに関心があります。しかし、これは、このような広範な質問に対して得られる可能性が高い他の回答と同じくらい有益です.
PS 答えは、Fortran、C、および C++ が CPU サイクルの 95% をはるかに超えて消費するということです。
私はそのような比較を分数と見なします。分子は定数です (約 0.00001 だと思います)。分母は、スレッドの数に論理プロセッサの数を掛けたものです。
IOW、単一のスレッドの場合、比較には100万回に1回の確率で何か意味があります。(たとえば) 16 スレッドのアプリケーションを実行するクアッド コア プロセッサの場合、意味のある結果が得られる可能性は 6,400 万回に 1 回です。
要するに、間違いなくかなりの数の人々がそれに取り組んでいますが、それらのいずれかからの単一の結果でさえ、有用で意味のある結果を提供する可能性は依然として非常に低いです. さらに悪いことに、それらの 1 つが本当に何かを意味していたとしても、それを見つけることはほとんど不可能であり、それが何かを意味していることを実際に知っているという点まで検証することはさらに困難です。