問題タブ [mpic++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
boost - mpic++を探しています
Boost MPIファイルをビルドしようとこれらの手順に従って.lib
いますが、1つの問題が発生しました:がありませんmpic++
。
MPICHやOpenMPIなどのMPI実装ファイルを見ると、まったくmpic++
含まれていません。
どこにありますmpic++
か?
c++ - LAN クラスター内ではなく、インターネット経由で MPI (C++) プログラムを配布できますか?
大規模なクラスターで問題なく動作する MPI コードをいくつか作成しました。クラスタ内の各ノードは同じ CPU アーキテクチャを持ち、ネットワーク化された (つまり「共通」) ファイル システムにアクセスできます (各ノードが実際のバイナリを実行できるようにするため)。ただし、次のシナリオを検討してください。
- 私のオフィスには、デュアル コア プロセッサ (インテル) を搭載したマシンがあります。
- 自宅にデュアル コア プロセッサ (amd) を搭載したマシンがあります。
両方のマシンで Linux が実行され、両方のマシンで MPI コードをローカルで正常にコンパイルおよび実行できます (つまり、2 つのコアを使用)。
さて、異なるアーキテクチャを念頭に置き、共有 (ネットワーク) ファイルシステムがないという事実を念頭に置いて、4 つのコアすべてを利用できるように、MPI を介して 2 台のマシンをリンクすることは可能ですか?
もしそうなら、どのように?
ありがとう、ベン。
c++ - MPI_Send / MPI_Recv のペアで、正しく同期されていないとデータが失われる可能性はありますか?
説明させてください。4 つのスレーブ ノード 1、2、3、4 とマスター ノード 0 を考えます。ここで、1、2、3、4 はデータを 0 に送信する必要があります。0 はこのデータを次の形式で受信します。
明らかに、1、2、3、および 4 が 0 にデータを送信する順序を想定することはできません (これらはすべて互いに独立して動作しているため、2 が 1 より前にデータを送信する可能性があるため)。したがって、2 が 1 の前にデータを送信すると仮定すると (たとえば)、上記の 0 の受信ループは、MPI_Recv コマンドのソース タグ 'proc' がプロセッサ '1' に一致するまで開始されません。この順番。
したがって、2、3、4 からデータが到着している場合でも、ループは 1 からデータが到着するまで「待機」します。 1より前に到着?「1」からのデータが到着し始めてから proc が 2 にインクリメントされると、最初に 2 から受信しようとしたデータが単に存在しなくなったという意味で「忘れられた」ことはありますか? それが「忘れられた」場合、特定のスレーブ プロセスのデータを正しく処理できなくなるため、分散シミュレーション全体が停止します。
ありがとう、ベン。
c++ - makefileでライブラリファイルを作成し、その後コンパイルします
私の問題はかなり簡単ですが、それを解決する方法がわかりません。makeファイルを使用していない場合は、コンパイルとライブラリを作成してリンクする方法を知っています。これは、arを個別に呼び出すだけで、すべてが正常に行われるためです。
とにかく、私はpetscライブラリを使用しており、それらが提供するmakefileを使用しています。
ARFLAGSはデフォルトで-rvになるので、次のような情報をどこに提供すればよいですか?
-L./-lclassdllはどこに追加すればよいですか?
私はmakefilesの新人なので、ここで少し迷っています:<
行をに変更しようとしました
そして、私のコンパイルコマンドはmpicxx -o myProgram main.o class.o / usr / bin / ar / libclassdll.a class.o -L(ここに多くのリンクがあります)のようで、少なくとも次のように表示されます:g ++ classdll.aそのようなファイルやディレクトリはありません。
だから私のためにlibファイルさえ生成しません。だからどんなアイデアも本当にありがたいです。
別のマシンにmakefileをアップロードしたときの新しい問題、現在のmakefileは次のようになります
これは1台のマシンで機能しますが、他のマシンでは次のエラーが発生します
もちろんパスを変更しましたが、「g ++ -shared -Wl、-soname、libmyclass.so.1 -olibmyclass.so.1.0MyClass.o」または「g++」と入力しても、他の種類の問題を示していると思います。 -fPIC -share..."同じエラーが発生します。
c++ - ライブラリと Cmake のディレクトリ インクルードを使用した共有オブジェクト
私は非常に慣れていないので、このアプローチCmake
の代替として使用しようとしていますが、うまくいきませんでした。
私の構造は実際には単純です。
そして、各App/src/soN
フォルダーには.cpp
、共有オブジェクトにコンパイルされるファイルがあります。上記の各フォルダーにファイルを追加する必要があることはわかっていCMakeLists.txt
ますが、ライブラリのリンクとインクルードで本当に迷っています。
たとえば、 の下に次のファイルがあるとしますApp/src/so1
。
また、共有オブジェクトso1.so
には が必要-I /some/dir/include
であり、 にリンクする必要もあります-L /some/other/dir/lib -l otherdirlib
。を使用してこれを行うための適切なディレクティブは何CMake
ですか?
compiler-construction - mpic++ ファイルは何に使用されますか?
「/usr/bin/mpic++」ファイルが何に使用されるのか知りたいです。
g++4.5.4 を使用して mpich2 をビルドし、g++4.5.4 への mpic++ スクリプトのデフォルト リンクを作成します。
次に、g++ を g++4.7 に更新します。
私の質問は、「g++4.7 を使用して mpich を再コンパイルする必要がありますか、それとも単に mpic++ スクリプトを変更する必要がありますか?」ということです。
ありがとう!
c++ - OSX "エラー: 'const std::__cxx11::basic_string を変換できません" とは何ですか?" 平均?
私のマシンで友人のコードをコンパイルしていますが、次のエラーが発生し続けています。
これは何を意味するのでしょうか?この問題を診断または治療するにはどうすればよいですか? mpic++ コンパイラを使用しています。このエラーをグーグルで検索してみましたが、有益な情報は見つかりませんでした。
これが私の環境を構築する方法です: