Linpack性能テスト環境構築
34735 ワード
SSHのパスワードなしアクセスを構築し、NFSとNIS後にLinpack性能テスト環境を構築することができる
クラウドコンピューティングシステムの重要な役割はユーザーにコンピューティング力を提供することであり、一つのシステムの全体的なコンピューティング力を評価する方法は統一的なテスト基準を評価として採用することであり、現在一つのシステムのコンピューティング力を評価する方法の中で最も有名なのはLinpackテストであり、世界で最も速い500台の巨大機システムの順位はこの基準を採用している.Linpackテスト技術を身につけることは、クラウドコンピューティング時代にクラウドシステムを評価する計算力にも重要な意義がある.この付録では、Linpackテスト技術について詳しく説明します.(mpi,GotoBlas,Linpackはnfs共有ディレクトリの下にインストールするか、すべてのノードがディレクトリを統一してインストールする)
1.Linpackインストール
インストールする前に、関連するソフトウェアとダウンロードアドレスは以下の通りです.
(1)Linuxプラットフォーム,最新安定カーネルのLinuxリリース版が最適で,Red hat,Centosなどを選択できる.
(2)MPICH 2は、http://www.mcs.anl.gov/research/projects/mp ich 2/downloads/indexまで並列に計算するソフトウェアである.php?s=downloads最新のソースパッケージをダウンロードします.
(3)Gotoblas,BLASライブラリ(Basic Linear Algebra Subprograms)はベクトルとマトリクス演算を実行するサブルーチンの集合であり,ここでは公認性能が最も優れているGotoblasを選択し,最新版はhttp://www.tacc.utexas.edu/tacc-projects/ダウンロード可能であり,登録が必要である.
(4)HPL,linpackでテストしたソフトウェアは,http://www.netlib.org/benchmark/hpl/で最新バージョンをダウンロードできる.
インストール方法と手順は以下のとおりです.
(1)MPICH 2を実装し,環境変数を配置することについて,本書の前に説明した.
(2)Linuxシステムに入り、rootユーザーを使用して、/rootでlinpackフォルダを作成し、ダウンロードしたGotoblasとHPLファイルをlinpackフォルダの下に解凍し、Gotoblasとhplに名前を変更することをお勧めします.
(3)Gotoblasをインストールします.
Gotoblasフォルダに入り、端末の下で実行します./quickbuild.64 bit(32ビットシステムの場合./quickbuild.31 bit)でクイックインストールを行います.もちろん、READMEの説明に従ってカスタムインストールを行うこともできます.正常にインストールすると、このディレクトリの下にlibgoto 2が生成されます.aとlibgoto 2.so 2つのファイル.
(4)HPLを取り付けます.
hplフォルダに入りsetupフォルダの下から自分のプラットフォームに近いMakeを抽出します.ファイルは、hplフォルダにコピーされます.例えば、私たちのプラットフォームはIntel xeonなので、Makeを選択しました.Linux_PII_Linuxオペレーティングシステム、PIIプラットフォーム、FBLASライブラリを採用するFBLAS.
コピーしたばかりのファイルを編集し、説明に従って各オプションを変更して、私たちのシステムの詳細は、Intel xeonプラットフォーム、mpich 2インストールディレクトリは/usr/local/mipch 2、hplとgotoblasインストールディレクトリは/root/linpackで、以下は私たちのプロファイルMakeです.Linux_xeon、修正が必要な部分に注釈をつけました.修正を参照してください.
ファイルを修正した後、コンパイルします.
コンパイルが正常であればhpl/bin/Linux_xeonディレクトリの下に2つのファイルHPLが生成する.datとxhpl.HPL.datファイルはLinpackテストの最適化プロファイルであり、これはテストの結果にとって非常に重要であり、xhplは実行可能プログラムである.
クラスタテストの場合は、linpackディレクトリをクラスタ内の残りのノードと同じディレクトリにコピーします.
これで、インストールは完了します.簡単なテストができるようになりました.
hpl/bin/Linux_へxeonディレクトリ、mpdサービスを開始し、端末で以下のコマンドを実行してテストを開始します.
複数のマシンの場合、machinefileなどのノードプロファイルを追加することもできます.フォーマットは次のとおりです.
host 1:1#Run 1 process on host 1、hostはドメイン名またはipアドレスであってもよい
host2:2 #Run 2 process on host2
............
通信は双方向であるため、すべてのhost上の/etc/hosts上で構成する必要があることに注意してください.
実行可能なコマンドは次のとおりです.
#mpiexec -n 4 -f machinefile ./xhpl
実行結果図
最後の列にGflops:4.937 e-03が表示されます
実際にはcat/proc/cpuinfoであるべきです
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz stepping : 2 cpu MHz : 2533.424 cache size : 12288 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat bogomips : 5066.84 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz stepping : 2 cpu MHz : 2533.424 cache size : 12288 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat bogomips : 5066.40 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual
デュアルコアは、circleごとに2つのprocess(ハードウェア決定)を実行できるので、CPUを完全に利用する場合は2.53 GHz*4=10.12
だから飛び出したcpuは50%未満しか利用していません
フォーマットの編成がよくないので、原文は参照してください.
http://www.orientsky.com.cn/_new/Read.asp?ID=1495
http://www.orientsky.com.cn/_new/Read.asp?ID=1496
クラウドコンピューティングシステムの重要な役割はユーザーにコンピューティング力を提供することであり、一つのシステムの全体的なコンピューティング力を評価する方法は統一的なテスト基準を評価として採用することであり、現在一つのシステムのコンピューティング力を評価する方法の中で最も有名なのはLinpackテストであり、世界で最も速い500台の巨大機システムの順位はこの基準を採用している.Linpackテスト技術を身につけることは、クラウドコンピューティング時代にクラウドシステムを評価する計算力にも重要な意義がある.この付録では、Linpackテスト技術について詳しく説明します.(mpi,GotoBlas,Linpackはnfs共有ディレクトリの下にインストールするか、すべてのノードがディレクトリを統一してインストールする)
1.Linpackインストール
インストールする前に、関連するソフトウェアとダウンロードアドレスは以下の通りです.
(1)Linuxプラットフォーム,最新安定カーネルのLinuxリリース版が最適で,Red hat,Centosなどを選択できる.
(2)MPICH 2は、http://www.mcs.anl.gov/research/projects/mp ich 2/downloads/indexまで並列に計算するソフトウェアである.php?s=downloads最新のソースパッケージをダウンロードします.
(3)Gotoblas,BLASライブラリ(Basic Linear Algebra Subprograms)はベクトルとマトリクス演算を実行するサブルーチンの集合であり,ここでは公認性能が最も優れているGotoblasを選択し,最新版はhttp://www.tacc.utexas.edu/tacc-projects/ダウンロード可能であり,登録が必要である.
(4)HPL,linpackでテストしたソフトウェアは,http://www.netlib.org/benchmark/hpl/で最新バージョンをダウンロードできる.
インストール方法と手順は以下のとおりです.
(1)MPICH 2を実装し,環境変数を配置することについて,本書の前に説明した.
(2)Linuxシステムに入り、rootユーザーを使用して、/rootでlinpackフォルダを作成し、ダウンロードしたGotoblasとHPLファイルをlinpackフォルダの下に解凍し、Gotoblasとhplに名前を変更することをお勧めします.
- #tar xvf GotoBLAS-*.tar.gz
- #mv GotoBLAS-* ~/linpack/Gotoblas
- #tar xvf hpl-*.tar.gz
- #mv hpl-* ~/linpack/hpl
(3)Gotoblasをインストールします.
Gotoblasフォルダに入り、端末の下で実行します./quickbuild.64 bit(32ビットシステムの場合./quickbuild.31 bit)でクイックインストールを行います.もちろん、READMEの説明に従ってカスタムインストールを行うこともできます.正常にインストールすると、このディレクトリの下にlibgoto 2が生成されます.aとlibgoto 2.so 2つのファイル.
(4)HPLを取り付けます.
hplフォルダに入りsetupフォルダの下から自分のプラットフォームに近いMakeを抽出します.
コピーしたばかりのファイルを編集し、説明に従って各オプションを変更して、私たちのシステムの詳細は、Intel xeonプラットフォーム、mpich 2インストールディレクトリは/usr/local/mipch 2、hplとgotoblasインストールディレクトリは/root/linpackで、以下は私たちのプロファイルMakeです.Linux_xeon、修正が必要な部分に注釈をつけました.修正を参照してください.
- # - shell --------------------------------------------------------------
- # ----------------------------------------------------------------------
- #
- SHELL = /bin/sh
- #
- CD = cd
- CP = cp
- LN_S = ln -s
- MKDIR = mkdir
- RM = /bin/rm -f
- TOUCH = touch
- #
- # ----------------------------------------------------------------------
- # - Platform identifier ------------------------------------------------
- # ----------------------------------------------------------------------
- #
- ARCH = Linux_xeon //
- #
- # ----------------------------------------------------------------------
- # - HPL Directory Structure / HPL library ------------------------------
- # ----------------------------------------------------------------------
- #
- TOPdir = $(HOME)/linpack/hpl //
- INCdir = $(TOPdir)/include
- BINdir = $(TOPdir)/bin/$(ARCH)
- LIBdir = $(TOPdir)/lib/$(ARCH)
- #
- HPLlib = $(LIBdir)/libhpl.a
- #
- # ----------------------------------------------------------------------
- # - Message Passing library (MPI) --------------------------------------
- # ----------------------------------------------------------------------
- # MPinc tells the C compiler where to find the Message Passing library
- # header files, MPlib is defined to be the name of the library to be
- # used. The variable MPdir is only used for defining MPinc and MPlib.
- #
- MPdir = /usr/local/mpich2 // mpich
- MPinc = -I$(MPdir)/include
- MPlib = $(MPdir)/lib/libmpich.a
- #
- # ----------------------------------------------------------------------
- # - Linear Algebra library (BLAS or VSIPL) -----------------------------
- # ----------------------------------------------------------------------
- # LAinc tells the C compiler where to find the Linear Algebra library
- # header files, LAlib is defined to be the name of the library to be
- # used. The variable LAdir is only used for defining LAinc and LAlib.
- #
- LAdir = $(HOME)/linpack/GotoBLAS2 // gotoblas
- LAinc =
- LAlib = $(LAdir)/libgoto2.a $(LAdir)/libgoto2.so //
- #
- # ----------------------------------------------------------------------
- # - F77 / C interface --------------------------------------------------
- # ----------------------------------------------------------------------
- # You can skip this section if and only if you are not planning to use
- # a BLAS library featuring a Fortran 77 interface. Otherwise, it is
- # necessary to fill out the F2CDEFS variable with the appropriate
- # options. **One and only one** option should be chosen in **each** of
- # the 3 following categories:
- #
- # 1) name space (How C calls a Fortran 77 routine)
- #
- # -DAdd_ : all lower case and a suffixed underscore (Suns,
- # Intel, ...), [default]
- # -DNoChange : all lower case (IBM RS6000),
- # -DUpCase : all upper case (Cray),
- # -DAdd__ : the FORTRAN compiler in use is f2c.
- #
- # 2) C and Fortran 77 integer mapping
- #
- # -DF77_INTEGER=int : Fortran 77 INTEGER is a C int, [default]
- # -DF77_INTEGER=long : Fortran 77 INTEGER is a C long,
- # -DF77_INTEGER=short : Fortran 77 INTEGER is a C short.
- #
- # 3) Fortran 77 string handling
- #
- # -DStringSunStyle : The string address is passed at the string loca-
- # tion on the stack, and the string length is then
- # passed as an F77_INTEGER after all explicit
- # stack arguments, [default]
- # -DStringStructPtr : The address of a structure is passed by a
- # Fortran 77 string, and the structure is of the
- # form: struct {char *cp; F77_INTEGER len;},
- # -DStringStructVal : A structure is passed by value for each Fortran
- # 77 string, and the structure is of the form:
- # struct {char *cp; F77_INTEGER len;},
- # -DStringCrayStyle : Special option for Cray machines, which uses
- # Cray fcd (fortran character descriptor) for
- # interoperation.
- #
- F2CDEFS = -DAdd__ -DF77_INTEGER= int -DStringSunStyle
- #
- # ----------------------------------------------------------------------
- # - HPL includes / libraries / specifics -------------------------------
- # ----------------------------------------------------------------------
- #
- HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
- HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)
- #
- # - Compile time options -----------------------------------------------
- #
- # -DHPL_COPY_L force the copy of the panel L before bcast;
- # -DHPL_CALL_CBLAS call the cblas interface;
- # -DHPL_CALL_VSIPL call the vsip library;
- # -DHPL_DETAILED_TIMING enable detailed timers;
- #
- # By default HPL will:
- # *) not copy L before broadcast,
- # *) call the BLAS Fortran 77 interface,
- # *) not display detailed timing information.
- #
- HPL_OPTS =
- #
- # ----------------------------------------------------------------------
- #
- HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
- #
- # ----------------------------------------------------------------------
- # - Compilers / linkers - Optimization flags ---------------------------
- # ----------------------------------------------------------------------
- #
- CC = /usr/local/mpich2/bin/mpicc // gcc mpicc
- CCNOOPT = $(HPL_DEFS)
- CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall
- #
- # On some platforms, it is necessary to use the Fortran linker to find
- # the Fortran internals used in the BLAS library.
- #
- LINKER = /usr/local/mpich2/bin/mpif77 // fortran mpif77
- LINKFLAGS = $(CCFLAGS)
- #
- ARCHIVER = ar
- ARFLAGS = r
- RANLIB = echo
- #
- # -----------------------------/usr/local/mpich2/bin/mpicc---------------------
ファイルを修正した後、コンパイルします.
- #make arch=Linux_xeon
コンパイルが正常であればhpl/bin/Linux_xeonディレクトリの下に2つのファイルHPLが生成する.datとxhpl.HPL.datファイルはLinpackテストの最適化プロファイルであり、これはテストの結果にとって非常に重要であり、xhplは実行可能プログラムである.
クラスタテストの場合は、linpackディレクトリをクラスタ内の残りのノードと同じディレクトリにコピーします.
これで、インストールは完了します.簡単なテストができるようになりました.
hpl/bin/Linux_へxeonディレクトリ、mpdサービスを開始し、端末で以下のコマンドを実行してテストを開始します.
- #mpiexec -np 4 ./xhpl
複数のマシンの場合、machinefileなどのノードプロファイルを追加することもできます.フォーマットは次のとおりです.
host 1:1#Run 1 process on host 1、hostはドメイン名またはipアドレスであってもよい
host2:2 #Run 2 process on host2
............
通信は双方向であるため、すべてのhost上の/etc/hosts上で構成する必要があることに注意してください.
実行可能なコマンドは次のとおりです.
#mpiexec -n 4 -f machinefile ./xhpl
実行結果図
最後の列にGflops:4.937 e-03が表示されます
実際にはcat/proc/cpuinfoであるべきです
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz stepping : 2 cpu MHz : 2533.424 cache size : 12288 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat bogomips : 5066.84 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz stepping : 2 cpu MHz : 2533.424 cache size : 12288 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat bogomips : 5066.40 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual
デュアルコアは、circleごとに2つのprocess(ハードウェア決定)を実行できるので、CPUを完全に利用する場合は2.53 GHz*4=10.12
だから飛び出したcpuは50%未満しか利用していません
フォーマットの編成がよくないので、原文は参照してください.
http://www.orientsky.com.cn/_new/Read.asp?ID=1495
http://www.orientsky.com.cn/_new/Read.asp?ID=1496