幹也日々記憶記録  〜Academic Days〜 このページをアンテナに追加 RSSフィード

2013-12-18(Wed)

[][]MacBook Pro11,3(15inch Retina Late 2013 OS X Mavericks 10.9.1)にopemMPI1.4.5 with Intel 12.1.6をインストール

GCC環境について

MacPortsによってgcc46, gcc48もいれてあるのだが,Intelコンパイラを使用するときはデフォルトllvm-gccを使うようにしないとconfigureが失敗する.gccのインストールと選択の方法についてはhttp://d.hatena.ne.jp/futofuji/20131217/p1を参照.

○パス

$ cd
$ vi .bashrc
   ->MacPortsを使うため以下を追記
   # MacPorts, GNU gcc, and etc
   if [ -d /opt/local ]; then
   export PORTS_HOME=/opt/local
   export PATH=$PORTS_HOME/bin:$PORTS_HOME/sbin:$PATH
   export MANPATH=$PORTS_HOME/share/man:$MANPATH
   export DYLD_FALLBACK_LIBRARY_PATH=$PORTS_HOME/lib:$DYLD_FALLBACK_LIBRARY_PATH
   export LIBRARY_PATH=$PORTS_HOME/lib:$LIBRARY_PATH
   export C_INCLUDE_PATH=$PORTS_HOME/include:$C_INCLUDE_PATH
   export CPLUS_INCLUDE_PATH=$PORTS_HOME/include:$CPLUS_INCLUDE_PATH
   fi
   # end(mac port, GNU gcc, and etc):w

   ->Intel コンパイラを使うため以下を追記
   #12.1.6 with MKL 10.3 update13
   source /opt/intel/composer_xe_2011_sp1.13.380/bin/compilervars.sh intel64

.bashrcを再読み込みさせる.

○バージョン確認

$ port select --list gcc
   ->none (active)

noneがアクティブになっていることを確認.つまり,llvm-gcc4.2.1が使われる.

noneがアクティブになっていない時は

$sudo port select --set gcc none

としてnoneを選択するようにする.

$ which g++
   ->/usr/bin/g++
$ g++ -v
   ->Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir
       Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
       Target: x86_64-apple-darwin13.0.2
       Thread model: posix
$ icc -v
   ->icc version 12.1.6 (gcc version 4.2.1 compatibility)
$ icpc -v
   ->icpc version 12.1.6 (gcc version 4.2.1 compatibility)
$ ifort -v
   ->ifort version 12.1.6
$ which ld
   ->/opt/local/bin/ld

○インストール

$ cd ~/tmp
$ wget http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-1.4.5.tar.gz
$ tar xvzf openmpi-1.4.5.tar.gz
$ cd openmpi-1.4.5
$ ./configure --prefix=/usr/local/openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1 CC=icc CXX=icpc F77=ifort FC=ifort CFLAGS=-m64 CXXFLAGS=-m64 FCFLAGS=-m64 FFLAGS=-m64 >& configure.log

m64オプションについては↓を参照

http://macwiki.sourceforge.jp/wiki/index.php/MPI#Open_MPI

$ make all >& make.log 
$ sudo su 
# make install >& install.log
# cp *.log /usr/local/openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1
# cd ../
# rm -rf openmpi-1.4.5
# exit

○もろもろ設定

$ vi $HOME/.rhosts
   ->下記1行が書かれていることを確認
   localhost
     
$ vi $HOME/hosts
   ->下記1行が書かれていることを確認
   localhost cpu=4
 
$ vi $HOME/.bashrc
   ->下記を追記
   #openmpi
   MPIROOT=/usr/local/openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1
   PATH=$MPIROOT/bin:$PATH
   DYLD_LIBRARY_PATH=$MPIROOT/lib:$DYLD_LIBRARY_PATH
   MANPATH=$MPIROOT/share/man:$MANPATH
   export MPIROOT PATH LD_LIBRARY_PATH MANPATH
   #end(openmpi)

[][][]MacBook Pro11,3(15inch Retina Late 2013 OS X Mavericks 10.9.1)にboost1.48.0 with Intel 12.1.6をインストール

rootでインストール

# sudo su

GCC環境について

MacPortsによってgcc46, gcc48が入っているのだが,2013.12.18にインストールしたopenMPI(http://d.hatena.ne.jp/futofuji/20131218/p1)に合わせてllvm-gcc4.2.1を使用する.MacPortsでのgccのインストールと選択の方法についてはhttp://d.hatena.ne.jp/futofuji/20131217/p1を参照.

○パス

# cd  
# vi .bashrc
   ->MacPortsを使うため以下を追記
   # MacPorts, GNU gcc, and etc
   if [ -d /opt/local ]; then
   export PORTS_HOME=/opt/local
   export PATH=$PORTS_HOME/bin:$PORTS_HOME/sbin:$PATH
   export MANPATH=$PORTS_HOME/share/man:$MANPATH
   export DYLD_FALLBACK_LIBRARY_PATH=$PORTS_HOME/lib:$DYLD_FALLBACK_LIBRARY_PATH
   export LIBRARY_PATH=$PORTS_HOME/lib:$LIBRARY_PATH
   export C_INCLUDE_PATH=$PORTS_HOME/include:$C_INCLUDE_PATH
   export CPLUS_INCLUDE_PATH=$PORTS_HOME/include:$CPLUS_INCLUDE_PATH
   fi    
   # end(mac port, GNU gcc, and etc):w

   ->Intel コンパイラを使うため以下を追記
   #12.1.6 with MKL 10.3 update13
   source /opt/intel/composer_xe_2011_sp1.13.380/bin/compilervars.sh intel64

   ->openMPIを使うために以下を追記 
   #openmpi
   MPIROOT=/usr/local/openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1
   PATH=$MPIROOT/bin:$PATH
   DYLD_LIBRARY_PATH=$MPIROOT/lib:$DYLD_LIBRARY_PATH
   MANPATH=$MPIROOT/share/man:$MANPATH
   export MPIROOT PATH LD_LIBRARY_PATH MANPATH
   #end(openmpi)

.bashrcを再読み込みさせる.

○バージョン確認

$ port select --list gcc
   ->none (active)

noneがアクティブになっていることを確認.つまり,llvm-gcc4.2.1が使われる.

noneがアクティブになっていない時は

$sudo port select --set gcc none

としてnoneを選択するようにする.

# which g++
   ->/usr/bin/g++
# g++ -v
   ->Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir
    Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
    Target: x86_64-apple-darwin13.0.2
    Thread model: posix 
# icpc -v
   ->icpc version 12.1.6 (gcc version 4.2.1 compatibility)
# which ld
   ->/opt/local/bin/ld
# which mpicxx
   ->/usr/local/openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1/bin/mpicxx
# mpicxx -v
   ->icpc version 12.1.6 (gcc version 4.2.1 compatibility)

○DL and Unzip boost package

# mkdir $HOME/tmp
# cd $HOME/tmp
# wget http://sourceforge.net/projects/boost/files/boost/1.48.0/boost_1_48_0.tar.gz
# tar xvzf boost_1_48_0.tar.gz

○Modification of source for homogeneous MPI

# cd $HOME/tmp/boost_1_48_0
# vi boost/mpi/config.hpp
   ->At line 26, comment "#define BOOST_MPI_HOMOGENEOUS" in.

Boost.Build インストール

# ./bootstrap.sh

Boostインストール

# mkdir -p $HOME/tmp/boost.build
# cd $HOME/tmp/boost_1_48_0
# cp tools/build/v2/user-config.jam ~/
# vi ~/user-config.jam
   ->一番下に↓を追記
   # ---------------------
   # mpi configuration.
   # ---------------------
   using mpi : mpicxx ;

# ./b2 --build-dir=$HOME/tmp/boost.build -j4 toolset=intel --prefix=/usr/local/boost1.48.0_openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1 install > install.log
# cp install.log /usr/local/boost1.48.0_openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1
# cd
# mvtrash $HOME/tmp/boost_1_48_0/ $HOME/tmp/boost.build $HOME/tmp/boost_1_48_0.tar.gz
# exit

ライブラリパスの設定

$ cd
$ vi .bashrc
   ->以下を追記
   #boost
   export DYLD_LIBRARY_PATH=/usr/local/boost1.48.0_openmpi1.4.5_intel12.1.6_llvm-gcc4.2.1/lib:$DYLD_LIBRARY_PATH
   #end(boost)

2013-12-17(Tue)

[][]MacBook Pro11,3(15inch Retina Late 2013 OS X Mavericks 10.9.1)にgcc4.8をインストール

○0. Xcode5.0.2とCommand Line Toolsをインストール

Xcodeをインストールした後,起動して

"Xcode" -> "Open Developer tool" -> "More Developer Tools" -> Apple IDでログイン -> "Command Line Tools(OS X Mavericks) for Xcode -Late October"をインストール.

○1. MacPortsをインストール

http://www.macports.org/

○2. userとrootの.bashrcに以下を追記

# MacPorts, GNU gcc, and etc
if [ -d /opt/local ]; then
export PORTS_HOME=/opt/local
export PATH=$PORTS_HOME/bin:$PORTS_HOME/sbin:$PATH
export MANPATH=$PORTS_HOME/share/man:$MANPATH
export DYLD_FALLBACK_LIBRARY_PATH=$PORTS_HOME/lib:$DYLD_FALLBACK_LIBRARY_PATH
export C_INCLUDE_PATH=$PORTS_HOME/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$PORTS_HOME/include:$CPLUS_INCLUDE_PATH
fi    
# end(mac port, GNU gcc, and etc)

○3. GCC4.8系とgcc_selectをインストール

$ sudo port install gcc48 
$ sudo port install gcc_select

○4. 現状のgccと利用できるgccの確認

$port select --list gcc
 ->Available versions for gcc:
     mp-gcc48
     none (active)

現状はnoneが選択されているのでXcode付属のgccが選択されている.

$gcc -v
 ->Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-includedir=/usr/include/c++/4.2.1
   Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
   Target: x86_64-apple-darwin13.0.2
   Thread model: posix 

○5. gccをportでインストールしたgcc48に切り替える

$sudo port select --set gcc mp-gcc48
 ->Selecting 'mp-gcc48' for 'gcc' succeeded. 'mp-gcc48' is now active.

一度シェルを再起動して.bashrcを読み込ませる.

$gcc -v
 ->Using built-in specs.
   COLLECT_GCC=gcc
   COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin13/4.8.2/lto-wrapper
   Target: x86_64-apple-darwin13
   Configured with: /opt/local/var/macports/build/_opt_mports_dports_lang_gcc48/gcc48/work/gcc-4.8.2/configure --prefix=/opt/local --build=x86
   Thread model: posix 
   gcc version 4.8.2 (MacPorts gcc48 4.8.2_0)

○6. 元のXcodegccに戻したいときは

$sudo port select --set gcc none

とすれば良い.

2013-11-25(Mon)

[]

もろもろ学務があるのだけども,20%ルールで今日は自分の研究.といってもプロジェクトにも関連はしている.ただ,「やりたいこと」「やるべきこと」「やれること」のバランスで「やりたいこと」に近いもの.EPCの本コーディング.テストコーディングではそんなに大変でなかったのだけれども,本コーディングとなると整合性や後々のために諸々手続きを踏むことにする.まずは,きちんとUserInterfaceを確認しておこうと思ってドキュメントから書いておく.これを先に書くと色々と頭の整理ができるのがこれまでの経験.そして,いくつかオブジェクト書いて,メソッド書いてなどなどしていて未完成のままにタイムアップ.その後は助教会.今回の助教会は,助教の仕事を整理共有しましょうというもので,いつにない感じ.

2013-11-21(Thu)

[]

昨日流した訂正ジョブが終わっていたので解析から.ストーリーには大きい変更ではないが多少の変更が必要な感じだったのでよくよく考える.その後,関連する某プロジェクトでの会議のために図を沢山作ってボスに送る.午後は学生のSCFが収束しないという相談.どうもすっきり答えられなかったが,色々と試してみる.こういう時にdiisやdampingについて説明できるようになったことに自分の変化を感じる.そしてまた他の学生と少し議論.どうも現行の計算レベルでは結果が怪しい感じがあるというのと,数日前に渡していたノートを題材に扱っている系に有効かどうか,有効だとしたらどのようなストーリーが考えらるかなどなど議論.その後,他の研究室も引越してきたので備品を少し貸したり,安全系のイベントがあったり.そういえば,昨日引越してきた研究室の技官さん助教さんにパーティションを譲れるという話をしたのだが,どうなっただろうか.是非有効活用してもらえれば嬉しい.その後,昨日メールが来ていた件に手を伸ばした.ベンダーの営業さんには工事関連の書類を送り,技術さんにはライセンス関連の書類を送った.というところで,某お役所の人から「hogehogeは本日締切です」というメールが来る.「まじっすか.私もそれ出すの?」という感じだったが,作らねばならないものは作るしかない.そんな中シンガポールから来客.ホテルの書類とキーを渡したところで彼は食事に向かった.僕は年度末に向けて予算の使途について考えて,一度帰宅しての夕食.研究室に戻ってきて某お役所への書類を提出.研究室に一人になったところで例のノートではテスト実装だったものを本実装にむけてコーディング開始.

2013-11-20(Wed)

[]

昨日修正した計算結果をみて無事に終わっている.なるほど教科書通りの結果である.ストーリー構成に大きく影響を与える計算ではないのだけど気になっていたことなので一度確認しておいて良かった.さて,MOからなにかわかるか?とのことでMOを眺めてみるも何もわからん.似た構造の分子のMOはやはり似ていて絵で見た程度では違いがでない.じゃあ,あるリージョンの電荷でも見てみるかと思い計算していみるもあまり違いはない.んー,そんなものか..一方,電気工事の件で色々な所から連絡がくる.仮設工事をするにはするで,どのような方法で誰に頼むのかを施設の人と相談したりしているものの,工事事業者さんからは部品調達の納期があるので早くしてくれとせっつかれる.はたまた,どこの予算から出すかという件で調達の方から連絡があったりする.この予算の連絡は嬉しいものでかつ大事なので祈るような気分になる.そんなこんなしているうちに他の工事事業者さんから計算機ベンダーに連絡が行き,営業さんからこちらに回ってきたものの,こちらとしては「ちょ,ちょ,ちょっと待ってくれ」と言いたい程度にわからない案件.また同時に計算機ベンダーの技術部門から設定についてのとある依頼が来る.一時間もあれば終わることなのだが,今は手がつけられない状態だったので明日にでもやろうと保留に.ちなみに,その間にちょいちょい計算結果を眺めていたら,間違いを発見して訂正のジョブを流す.これはストーリ上大事な計算なので冷や汗ダラダラ.ジョブを流して,学内会議の日程調整と部屋をとったところで今日はタイムアップ.

2013-11-19(Tue)

[]

まずは,諸々の事務仕事.年末調整して,保育園への申請書類を事務に出す.んでもって研究室の資産管理書類を作って,来る来月(?)の水銀系ゴミの数量調査.それから昨日投げたジョブのチェックして上手く回ってそうなことを確認.初めてする計算の種類なのでちょい不安.午後イチは学生さんと話して,この前の会議のフィードバックとアイディアを伝えた.夕方は研究室に届いた家具3つを学生と作成しジュースを飲んだ.その後は故障PCの修理と新たな研究室家具の注文.今度は皆が待ち望んでいた冷蔵庫と議論用グッズ.はたしてディスカッションスペースをどうしたら有効に利用されるものになるだろうか.んでもってあいも変わらず電源確保の調整作業でネゴネゴ電話.何度か往復のやりとりした後は別に購入しようかと思っている計算機についてベンダーさんに連絡.夕方になってきたので再計算結果の解析をしつつ,研究室の同僚スタッフさんとプロジェクトに関する議論をして,一度帰宅.家族団らんの時間.また研究室に戻って,ジョブチェックしたらいくつかコケている.系統的にインプットの書き間違いをしていたよう."1hoge"と書くと"1"しか認識してくれていない.1はfirstの意味で使っていたのでfhogeに変換し,2はsecondの意味だったのでshogeに変換し再サブミット.はてさて,夜も更けてきたころデータの解析再開.

2013-06-27(Thu)

[] Build & Install openBLAS-0.2.5 @ Ubuntu-12.04 on SandyBridge(64 bit)

0. Spec of Used CPU is http://ark.intel.com/products/52229

1. Checking of compilers

   $ gcc -v
     ->gcc version 4.6.3
   $ gfortran -v
     ->gcc version 4.6.3

2. Download and unpack the package of openBLAS-0.2.5

   $ cd; mkdir tmp.ob.build; cd tmp.ob.build
   $ wget https://github.com/xianyi/OpenBLAS/archive/v0.2.5.tar.gz
   $ tar xvzf v0.2.5.tar.gz
   $ cd OpenBLAS-0.2.5

3. Changing of the Makefile.rule for building the openBLAS

   $vi Makefile.rule
     TARGET = SANDYBRIDGE
     CC = gcc
     FCC = gfortran
     BINARY=64
     USE_OPENMP = 1
     INTERFACE64 = 1
     PREFIX = /usr/local/openblas0.2.5-gcc4.6.3-gfortran4.6.3

4. Build, Install, and Create a link

   $make >& make.log
   $sudo make install >& install.log
   $sudo ln -s /usr/local/openblas0.2.5-gcc4.6.3-gfortran4.6.3 /usr/local/openblas

5. Remove the building directory

   $cd; rm -rf tmp.ob.build

2013-01-21(Mon)

2013-01-15(Tue)

[][][]Push and Get from GA

$ vi boost.mpi-ga++-3.cpp

#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <boost/shared_ptr.hpp>
#include <iostream>
#include <string>
#include "ga++.h"
using namespace std;

int main(int argc, char* argv[])
{
   GA::Initialize(argc, argv);
   boost::mpi::communicator world;
   GA::GAServices gaServices;
   {   
      int ndim=1;
      int dims[]={20};
      char* arrayName = "array_name";
      boost::shared_ptr<GA::GlobalArray> ptrGA(new GA::GlobalArray(MT_C_DBL, ndim, dims, arrayName, NULL));
      ptrGA->zero();

      if(world.rank() == 2){ 
         int lo[] = {3};
         int hi[] = {7};
         double local3[20];
         for(int i=0; i<20; i++){
            local3[i] = (i+1.0)*3;
         }
         ptrGA->put(lo, hi, local3, NULL);
      }   
      gaServices.sync();

      if(world.rank() == 7){ 
         int lo[] = {0};
         int hi[] ={19};
         double local4[20];
         ptrGA->get(lo, hi, local4, NULL);
         for(int i=0; i<20; i++){
            cout << "i=" << i << "\t" << local4[i] << endl;
         }
      }

   }
   GA::Terminate();
   return 0;
}

$ mpicxx boost.mpi-ga++-3.cpp -o boost.mpi-ga++-3.out -I/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/include -L/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/lib/ -lboost_mpi -lboost_serialization -Wl,-rpath=/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/lib -I/home/fujii/ga5.1.1_intel12.1.3_openmpi1.4.2_IB/include -L/home/fujii/ga5.1.1_intel12.1.3_openmpi1.4.2_IB/lib -lga++ -lga -larmci -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -DMKL_ILP64 -lmpi_f90 -lmpi_f77 -lrdmacm -libverbs -lrt -lnsl -lutil -ldl -lm -lrt -lnsl -lutil



$ vi nodes

node07

node07

node07

node07

node08

node08

node08

node08

$ mpirun -np 8 boost.mpi-ga++-3.out

i=0 0

i=1 0

i=2 0

i=3 3

i=4 6

i=5 9

i=6 12

i=7 15

i=8 0

i=9 0

i=10 0

i=11 0

i=12 0

i=13 0

i=14 0

i=15 0

i=16 0

i=17 0

i=18 0

i=19 0

2012-12-28(Fri)

[][][]Compiled on Infiniband cluster

(一応,作業前にNWChemやMolpro等のGAを使用しているアプリの環境変数コメントアウトした.)

コンパイラ等確認(インテル12.1.3とopneMPI1.4.2)

$ icc -v

->icc version 12.1.3 (gcc version 4.1.2 compatibility)

$ icpc -v

->icpc version 12.1.3 (gcc version 4.4.3 compatibility)

$ ifort -v

->ifort version 12.1.3

$ which mpicc

->/usr/mpi/intel/openmpi-1.4.2/bin/mpicc

$ mpicc -v

->icc version 12.1.3 (gcc version 4.1.2 compatibility)

$ cat /proc/sys/kernel/shmmax

->68719476736


コンパイル【8byte整数(ILP64モデル)でコンパイル

$ cd

$ tar xvzf packages/ga-5-1-1.tggz

$ mv ga-5-1-1 ga5.1.1_intel12.1.3_openmpi1.4.2_IB

$ cd ga5.1.1_intel12.1.3_IB

$ ./configure --enable-i8 CC=icc CXX=icpc F77=ifort LDFLAGS="-DMKL_ILP64" --with-openib --with-mpi="-I/usr/mpi/intel/openmpi-1.4.2/include -L/usr/mpi/intel/openmpi-1.4.2/lib64 -lmpi" --with-blas8="-L/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64 -I/opt/intel/composer_xe_2011_sp1.9.293/mkl/include -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread" --enable-cxx --prefix=/home/fujii/ga5.1.1_intel12.1.3_openmpi1.4.2_IB >& config.log

$ make >& make.log


○インストール

# make install >& install.log


○サンプルプログラム

$ vi boost.mpi-ga++-2.cpp

#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
#include "ga++.h"

int main(int argc, char* argv[])
{
   GA::Initialize(argc, argv);
   boost::mpi::communicator world;
   GA::GAServices gaServices;
   std::cout << "I am process " << world.rank() << " of " << world.size() << ". " 
             << "My node-id is " << gaServices.clusterNodeid() << std::endl;
   GA::Terminate();
   return 0;
}

$ mpicxx boost.mpi-ga++-2.cpp -o boost.mpi-ga++-2.out -I/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/include -L/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/lib/ -lboost_mpi -lboost_serialization -Wl,-rpath=/home/tcl/boost1.48.0_openmpi-1.4.2_intel64-12.1.3/lib -I/home/fujii/ga5.1.1_intel12.1.3_openmpi1.4.2_IB/include -L/home/fujii/ga5.1.1_intel12.1.3_openmpi1.4.2_IB/lib -lga++ -lga -larmci -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -DMKL_ILP64 -lmpi_f90 -lmpi_f77 -lrdmacm -libverbs -lrt -lnsl -lutil -ldl -lm -lrt -lnsl -lutil



$ vi nodes

node07

node07

node07

node07

node08

node08

node08

node08


$ mpirun -np 4 boost.mpi-ga++-2.out

I am process 4 of 8. My node-id is 1

I am process 0 of 8. My node-id is 0

I am process 3 of 8. My node-id is 0

I am process 1 of 8. My node-id is 0

I am process 5 of 8. My node-id is 1

I am process 6 of 8. My node-id is 1

I am process 2 of 8. My node-id is 0

I am process 7 of 8. My node-id is 1