perl モジュールの一部として完全に優れた perl サブルーチンを作成しました。あまり詳細には触れずに、文字列と短いリストを引数として (端末から取得することが多い) 取り、値を吐き出します (現在、常に浮動小数点ですが、常にそうであるとは限りません)。
現在、引数のリスト部分は 2 つの値、たとえば (val1,val2) を取ります。for ループを使用して、val1 と val2 の何百もの異なる値のサブルーチンの出力を保存します。各反復が完了するまでにほぼ 1 秒かかるため、このプロセス全体を完了するには数時間かかります。
私は最近、「スレッド化」と呼ばれる神秘的な (私にとって) 計算ツールについて読みました。これは明らかに for ループを非常に高速な実行時間に置き換えることができます。これらが何なのか、何をするのか理解に苦しんでいますが、並列コンピューティングと関係があるのではないかと思います (また、並列プロセッサ用にモジュールを可能な限り最適化したいと考えています)。
val1 に渡したいすべての値をリストとして保存する場合、たとえば @val1 と val2 についても同様にすると、これらの「スレッド」を使用して、val1 と val2 の要素のすべての組み合わせに対してサブルーチンを実行するにはどうすればよいでしょうか? また、この手順を val3、val4 なども受け取るサブルーチンに一般化する方法を知っておくと役立ちます。