MATLAB においてスレッド数を変化させて線形方程式を解いたときの実行時間を比較してみよう。ここで行列 B は大きさ 10,000 x 10,000 の行列、及び x と c は大きさ 10,000 のベクトルとする。
>> n=10000; B=randn(n); c=randn(n,1);
>> N = maxNumCompThreads(1)
>> tic; x = B \ c; toc
>> Elapsed time is 72.736224 seconds.
>> N = maxNumCompThreads(8)
>> tic; x = B \ c; toc
>> Elapsed time is 13.771478 seconds.
上記のようにスレッド数が 1 から 8 に増えると、実行時間が 72.736秒から 13.771秒へと減少した。
○計算サーバ
CPU : Intel Xeon 5550 (2.66GHz / 8MB L3) x 2 (8コア)
Memory : 72GB (18 x 4GB / 800MHz)
OS : Fedora 13 for x86_64
>> n=10000; B=randn(n); c=randn(n,1);
>> N = maxNumCompThreads(1)
>> tic; x = B \ c; toc
>> Elapsed time is 72.736224 seconds.
>> N = maxNumCompThreads(8)
>> tic; x = B \ c; toc
>> Elapsed time is 13.771478 seconds.
上記のようにスレッド数が 1 から 8 に増えると、実行時間が 72.736秒から 13.771秒へと減少した。
○計算サーバ
CPU : Intel Xeon 5550 (2.66GHz / 8MB L3) x 2 (8コア)
Memory : 72GB (18 x 4GB / 800MHz)
OS : Fedora 13 for x86_64