OpenMPプログラミングat TECHOpenMPプログラミング - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト150:デフォルトの名無しさん 08/04/09 22:52:21 >>148 関数のエントリ近辺で chkstk が呼び出され、必要に応じてスタックが拡張される (実メモリが割り当てられる)わけですが、シングルスレッドの場合は一度拡張された スタックはもちろん再利用されるので負荷が軽いわけです。 スタックはリニアなアドレスに(ページング機構を用いて)メモリを割り当てる必要があるため、 割り当てられたページを再利用できない場合には時としてヒープよりも確保・解放が重い メモリとなります。マルチスレッドでスタックが頻繁に成長するような場合には、メモリを スタック上に取るのをやめて、std::vector などを用いてヒープから確保した方がよいと 思います。 たどたどしい説明になってしまった。 151:デフォルトの名無しさん 08/05/12 19:46:23 ・アプリケーションAが、calc1.dll と calc2.dll を呼んでいる ・calc1.dll と calc2.dll は共に IntelCompiler で OpenMP を使って並列化 ・calc1.dll のルーチンは問題なく呼べる ・calc2.dll のルーチンを呼ぶと、 OMP abort: Initializing libguide.lib, but fount libguide.lib already initialized を表示して落ちる/(^o^)\ ネットを漁ってみて、 環境変数 KMP_DUPLICATE_LIB_OK を TRUE にしてみたり libguide.lib の代わりに libguide40.lib を使ってみるも効果なし 複数の DLL が Intel の OpenMP 使ってるとアウト? そうなると DLL じゃ使えねーってハナシになるんですが・・・・ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch