OpenMPは、C++のマルチコアプログラミングで簡単に遊ぶ方法です。 wikipediaの例では、プロセッサを大量に使用することは実際にはありませんが、 'cout'を独立した長期実行可能な関数に置き換えることができます。限り64ビットとして
OpenMP
、パフォーマンス向上の多くは、いくつかの場所から来ることを行っています。
は、すべてのデータ要素が広いので、プロセッサは、任意の所与のクロックサイクルでより多くのデータを処理することができ、スループットを向上します。 Exchange ServerのMicrosoftのベンチマークの一部を見てみましょう。スループットの向上が驚異的なため、64ビットのみをサポートするようになりました。
64ビットアーキテクチャには多数のレジスタがあり、ほとんどの関数パラメータと戻り値はレジスタを使用して渡すことができるため、より多くのレジスタが使用できます。いくつかのcalling conventions 1または多分2つのパラメータはレジスタを介して渡すことができ、残りの部分とのx86 ABIに
はスタックにプッシュする必要があります。 cdeclのような共通の呼び出し規約では、単一のパラメータまたは戻り値がレジスタに置かれません。スタックはメインメモリに配置されているので、これは大きなパフォーマンスヒットになる可能性があります。
非常にまだ 'cout <<" Hello World "<< endl;' – Jherico