バークレー統合パラレルC(UPC)。 WindowsおよびLinuxのインストール

画像 Unified Parallel C(UPC)は、大規模な並列マシンでの高性能コンピューティング用に設計されたC言語拡張です。 この言語は、共有メモリと共有メモリを備えたシステムの単一のプログラミングモデルを表します。 並列処理の量は、プログラムの開始時に固定され、通常はプロセッサコアごとに1つのスレッドが使用されます。



» UPCの公式ウェブサイト

» バークレーUPC公式ウェブサイト



かつては、UPCの展開に問題があり、インターネットのロシア語セグメントまたは英語セグメントの最初のステップに関するヒントがありませんでした。ただし、公式のINSTALL.TXT命令は消化する必要がありました。



この経験が無駄にならないように、さまざまな環境でのUPCのインストールに関する記事を書くことにしました。



問題や質問がある場合は、クリエイターに技術サポートを依頼できます。 彼らはかなり迅速に応答します(彼らが惑星の反対側にいるという事実を考えると)。 これを理解するのを手伝ってくれたPaul HargroveとDan Bonacheaに感謝します。



WindowsにBerkeley UPCをインストールする



環境の準備



基本的に、UPCはLinuxの下で強化されているため、最初に行うことは、Linuxに似たコンソールと必要なパッケージをインストールすることです。



1. Cygwinをインストールします(C:\ Programs \ Cygwin64など、スペースのない名前のフォルダーにインストールするのが望ましい)

www.cygwin.com/setup-x86.exe

www.cygwin.com/setup-x86_64.exe



デフォルトのインストールに加えて、gccパッケージ(gcc-core、gcc-g ++)を追加する必要があります。 次のコマンドでインストールを確認できます。

cygcheck -s
      
      





2. Perlをインストールするか、Cygwinパッケージからダウンロードします



Berkeley UPCをインストールする



1. Berkeley UPCをダウンロードします (C:\ Programs \ berkeley_upc-2.22.3 \ setup)



2.ビルドのサブディレクトリを作成します(C:\ Programs \ berkeley_upc-2.22.3 \ setup \ build)



3. Cygwinを起動します



4. configureスクリプトを実行します。 インストールディレクトリを指定するには、 --prefix=dir



オプションを使用して、デフォルトのネットワークを指定します--with-default-network=smp



(対称型マルチプロセッシング、ローカルマルチコアマシン):

 cd /cygdrive/c/Programs/berkeley_upc-2.22.3/setup/build ../configure --prefix=/cygdrive/c/Programs/berkeley_upc-2.22.3 --with-default-network=smp
      
      



成功! これで構成手順が完了しました。 次の手順に進む必要があります。

gmake gmakeインストール


5. UPCのコンパイル:

 make
      
      





6. UPCをインストールします。

 make install
      
      





opt、dbgフォルダーには、UPCコードで使用されるランタイムライブラリのさまざまなビルドが含まれています。 optフォルダーには最適化が含まれ、デフォルトで使用されます。 dbgフォルダーは、upccで-gオプションを使用する場合のデバッグに使用されます。 これらのフォルダーの内容を直接使用しないでください。 ビルドフォルダーのupccおよびupcrunユーティリティ、またはインストールフォルダーのbinサブフォルダーを使用する必要があります。



毎回ユーティリティへのパスを指定しないようにするために、PATH環境変数にビンパスを追加できます(コンピューターのプロパティ->システムの詳細設定->環境設定)。



UPC構成テスト(オプション)



0.各ビルドサブフォルダーには、upcc.conf構成ファイルが含まれています。 確認して、必要に応じて編集します。



1.最小構成テスト(ビルドフォルダーから):

 env UPCC_FLAGS= ./upcc --norc --version
      
      



これはupcc(Berkeley Unified Parallel Cコンパイラ)、vです。 2.22.3

(リモートトランスレーター設定の取得...)

---------------------- + --------------------------- ------------------------------

UPCランタイム| v。 2.22.3、2016年10月26日10:22:58に作成

---------------------- + --------------------------- ------------------------------

UPC-to-Cトランスレーター| v。 2.22.2、2016年5月12日15:50:34に作成

| ホストアブラムシlinux-x86_64 / 64

| gcc v4.2.4(Ubuntu 4.2.4-1ubuntu4)

---------------------- + --------------------------- ------------------------------

翻訳者の場所| upc-translator.lbl.gov/upcc-2.22.2.cgi

---------------------- + --------------------------- ------------------------------

サポートされているネットワーク| udp smp

---------------------- + --------------------------- ------------------------------

デフォルトネットワーク| smp

---------------------- + --------------------------- ------------------------------

pthreadsサポート| 使用可能(使用する場合、デフォルトはプロセスごとに2 pthread)

---------------------- + --------------------------- ------------------------------


2.テストをコンパイルします。

 make tests-hello
      
      



==== UPC「HELLO WORLD」テストが正常に終了しました====

UPCコンパイルのセットアップは、検出されたすべてのネットワークで機能しているようです:udp smp

ここで、対象の各ネットワークのUPCランタイム操作をテストする必要があります。

次のようなコマンドを使用して、単一ノードのsmp / pthreadedネットワークをテストすることから始めます。

./upcrun -n 2 libupcr-smp-par-test


3.各タイプのネットワークの結果を確認します。

 ./upcrun -n 2 ./opt/libupcr-smp-par-test
      
      



UPCR:SERAVKIN-PCのUPCスレッド0..1(プロセス0 of 1、pid = 17100)

バークレーUPCへようこそ!

-スレッド0からこんにちは

-スレッド1からこんにちは


 ./upcrun -n 2 ./opt/libupcr-udp-par-test
      
      



upcrun:ノードが指定されていません! 「man upcrun」のUDPベースのUPCジョブの実行を参照してください。






 cd /cygdrive/c/Programs/berkeley_upc-2.22.3/bin ./upcc /cygdrive/c/Programs/berkeley_upc-2.22.3/upc-examples/hello.upc -o hello -pthreads ./upcrun -n 4 hello
      
      



UPCR:SERAVKIN-PCの4のUPCスレッド0..3(プロセス0の1、pid = 32016)

バークレーUPCへようこそ!

-スレッド2からこんにちは!!!

-スレッド1からこんにちは!!!

-スレッド3からこんにちは!!!

-スレッド0からこんにちは!!!


不快な制限



Windows環境では、オンラインのUPC-to-Cトランスレーター(デフォルトで使用)のみを使用できます。 したがって、オンラインである必要があり、動作が遅くなります。 しかし、最もストレスの多いのは、バークレーがすべてのプログラムを傍受する可能性があることです。 タスクが教育的なものであれば大丈夫ですが、何か深刻なものであれば、なんとなく不快です。 さらに、デバッグはLinuxでのみ機能するという懸念があります。 このすべてをWindowsで開始するには、仮想マシンをインストールできます



バーチャルROSAフレッシュ



1.最初に、 Oracle VM VirtualBoxなどの仮想マネージャーをインストールする必要があります



2. Linuxイメージをダウンロードします。 ROSA Fresh KDEの選択が下がったのは、 これは国内の開発です。



3.新しいマシンOther Linuxを追加し、RAMを同情しない限り割り当てます。



4.設定:

システム-プロセッサ:プロセッサ-すべてのコア、90%制限(そうでない場合、メインシステムは高負荷で応答を停止します)。

ディスプレイ-画面:96 MBのビデオメモリ

メディア-Linuxで画像を追加する

ネットワークはネットワークブリッジです。


5.仮想マシンを起動します。 [ROSAデスクトップのインストール]を選択し、システムのプロンプトに従います。 第一印象はポジティブです。



Linuxインストール



環境の準備



ローザ

1.ターミナルでコマンドを実行してg ++をインストールします。

 urpmi gcc-c++
      
      





Alt Linux

1. g ++をインストールします(リポジトリから、または最新バージョンを見つけます):

 apt-cache search gcc-c++ apt-get install gcc5-c++
      
      





2. perl-Term-ReadLine-Gnuをインストールします

 apt-get install perl-Term-ReadLine-Gnu
      
      







Berkeley UPC-to-Cトランスレーターをインストールする



1. Berkeley UPC-to-Cトランスレーターをダウンロードし、フォルダー内のターミナルを開きます(コンテキストメニューを使用)。



2. makeコマンドを実行します。

 make
      
      



-***ビルド完了! ***

これでコンパイラをインストールできます:

make prefix = / prefix / to / useをインストールします


3.昇格された権限でインストールを実行します。

 sudo make install
      
      



-***インストール完了! ***

このトランスレーターをローカルで使用するには、次のパス名を挿入します。

/ usr / local / bupc_translator / targ

upcc.confまたは〜/ .upccrcの「translator」設定で、

またはupcc -translator = pathに渡します


Bukeley UPC Build



1. Berkeley UPCのダウンロード



2.サブフォルダービルドを作成し、フォルダー内のターミナルを開きます(コンテキストメニューを使用)



3.ローカルトランスレーターとデフォルトのネットワークsmp(対称型マルチプロセッシング、ローカルマルチコアマシン)で構成ファイルを実行します。

 ../configure BUPC_TRANS=/usr/local/bupc_translator/targ --with-default-network=smp
      
      



成功! これで構成手順が完了しました。 次の手順に進む必要があります。

gmake gmakeインストール


4. UPCのコンパイル:

 make
      
      





UPC構成テスト(オプション)



0.各ビルドサブフォルダーには、upcc.conf構成ファイルが含まれています。 確認して、必要に応じて編集します。



1.ビルドフォルダーから構成テストを実行します。

 env UPCC_FLAGS= ./upcc --norc --version
      
      



これはupcc(Berkeley Unified Parallel Cコンパイラ)、vです。 2.22.3

---------------------- + --------------------------- ------------------------------

UPCランタイム| v。 2.22.3、2016年10月26日14:01:01に作成

---------------------- + --------------------------- ------------------------------

UPC-to-Cトランスレーター| v。 2.22.2、2016年10月25日16:22:01に作成

| ホストRosa-VB linux-x86_64 / 64

| gcc v4.9.2 20140811(ROSA)

---------------------- + --------------------------- ------------------------------

翻訳者の場所| / usr / local / bupc_translator / targ

---------------------- + --------------------------- ------------------------------

サポートされているネットワーク| udp smp

---------------------- + --------------------------- ------------------------------

デフォルトネットワーク| smp

---------------------- + --------------------------- ------------------------------

pthreadsサポート| 使用可能(使用する場合、デフォルトはプロセスごとに2 pthread)

---------------------- + --------------------------- ------------------------------


2.テストのコンパイルを開始します。

 make tests-hello
      
      



==== UPC「HELLO WORLD」テストが正常に終了しました====

UPCコンパイルのセットアップは、検出されたすべてのネットワークで機能しているようです:udp smp

ここで、対象の各ネットワークのUPCランタイム操作をテストする必要があります。

次のようなコマンドを使用して、単一ノードのsmp / pthreadedネットワークをテストすることから始めます。

./upcrun -n 2 libupcr-smp-par-test


3.各タイプのネットワークの結果を確認します。

 ./upcrun -n 2 ./opt/libupcr-smp-par-test
      
      



UPCR:Rosa-VBのUPCスレッド0..1 of 2(pshmノード0 of 1、プロセス0 of 1、pid = 12494)

バークレーUPCへようこそ!

-スレッド1からこんにちは

-スレッド0からこんにちは


 ./upcrun -n 2 ./opt/libupcr-udp-par-test
      
      



upcrun:ノードが指定されていません! 「man upcrun」のUDPベースのUPCジョブの実行を参照してください。


Berkeley UPCをインストールする



1.昇格した権限でビルドからmake installコマンドを実行します。 デフォルトでは、インストールは/ usr / local / berkeley_upcディレクトリで行われます。 ディレクトリを変更するには、オプション--prefix=dir



使用できます

 sudo make install
      
      





2.環境変数にパスを追加します。 これを行うには、ファイル/home/user/.bashrcに行を追加する(ターミナルを開いたときに自動的に開始する)か、現在のセッションに適用します。

 export PATH=$PATH:/usr/local/berkeley_upc/bin
      
      





3.開始を確認します。

 upcc --version
      
      



これはupcc(Berkeley Unified Parallel Cコンパイラ)、vです。 2.22.3






1. upc-examplesフォルダーでターミナルを開きます。



2.コマンドを実行します。

 upcc ./hello.upc -o hello -pthreads upcrun -n 4 hello
      
      



UPCR:Rosa-VBのUPCスレッド0..1 of 4(pshmノード0 of 1、プロセス0 of 2、pid = 13295)

UPCR:Rosa-VBのUPCスレッド2..3 of 4(pshmノード0 of 1、プロセス1 of 2、pid = 13320)

バークレーUPCへようこそ!

-スレッド1からこんにちは

-スレッド3からこんにちは

-スレッド0からこんにちは

-スレッド2からこんにちは


Eclipse開発環境



Eclipse開発環境は、Berkeley UPC言語をサポートしています。 Eclipse for Parallel Application Developersアーカイブから解凍するだけです。 Eclipse Parallel Tools Platform(PTP)プロジェクトの詳細については、 こちらをご覧ください



開梱後、次の設定を行う必要があります。



0. Javaランタイム環境のインストール



1.更新の確認:メニューのヘルプ→更新の確認を開きます。 C / C ++ Berkeley UPC(Unified Parallel C)ツールチェーンサポートの更新



2.新しい「Hello World UPCプロジェクト」プロジェクト、ツールチェーン:Linux Berkeley UPC(多くの便利なデフォルト設定)を作成します



3.次を含むパスを指定しますプロジェクトのプロパティ→C / C ++一般→パスとシンボルを開きます。 UPCの場合、インクルードパスを追加します。



リリース構成:

 /usr/local/berkeley_upc/opt/include/upcr_preinclude /usr/include
      
      





デバッグ構成:

 /usr/local/berkeley_upc/dbg/include/upcr_preinclude /usr/include
      
      





4.ロシア語のコメントのスペルチェックを無効にします。 コメントを右クリックして、[スペルチェックを無効にする]を選択します。

5.ロシア語のレイアウトにクイックボタンを追加します。 メニューウィンドウ-設定-一般-エディタ-キー。 項目「コピー」、「カット」、「貼り付け」をコピーし、「バインド」フィールドに独自の組み合わせを追加します



注釈



使用する



多くの組み込みマニュアル:

 man upcc man upcrun
      
      





デバッグ



更新: バークレー統合並列C(UPC)。 GNU gdb C debbugerを使用したデバッグ。 呼び出し履歴



ご清聴ありがとうございました! 誰かが役に立つといいな



All Articles