閑話休題
とっても面倒くさい様な話を降り出したのですが、何かおかしいぞと思ったアナタ!
ヨクゾ気付きました。エライ、エライ、 なでなでしてあげます(^o^)
昨今のパソコンはCPU等が高機能化し、4コアや8コア程度は当たり前、お金を出し惜しみしなければ
32コアとか128コアとかのCPUを選ぶ事も出来ます。
但し、WindowsのクライアントOSは32コアを超えるCPUコアはサポートされず、使用されません。
であるのであれば、そんな時間のかかる場合はコンパイラやOSが適当に割り振ってくれても
良いのでは無いかと思いませんか?
まぁ、そう考えるのが普通ですな!
でも、現状のOSやコンパイラは、
・どの部分が時間のかかる処理か
や
・どの部分が別のコアに割り当てても問題が無いか
を判断する事がいまだ出来ていません。
ですので、プログラムを記述する我々が適切に明確な指示をしない事には
プログラムの分離はできないのです。
21世紀になったら、どら衛門や100万馬力のロボットが出来ていて、プログラミングから開放されると
夢見ていた自分を殴ってやりたいです。😂
〜〜蛇足〜〜
確かにコンパイラの最適化は進歩しました。インテルのコンパイラなどはベンチマークテストのコードを
何事もなかったかの様に処理して、ほとんど空のコードを吐き出して、唖然としました。
昔々、パソコンがまだ一般的じゃなかった頃、会社で導入したコンピュータでとあるシュミレータを
作って居た頃でも、並列化の部分はゴリゴリと手作業で書いていました。
WindowsもmacOSもAPIやライブラリは豊富にそろっていますが、基本的な部分はIBMのOS/370や
DECのVMSとそうは変わっていないように思えます。
ですので、若い方々の努力の参考になれば幸いです。<m(__)m>