Posted
Filed under Computer/HPC
컴파일 할때 아래와 같은 에러가 난다면... 다음처럼 해준다.

/opt/intel/Compiler/11.1/059/lib/intel64/libimf.so: warning: warning: feupdateenv is not implemented and will always fail
/opt/intel/Compiler/11.1/059/lib/intel64/for_main.o: In function `main':
/export/users/nbtester/efi2linux_nightly/branch-11_1/20091013_000000/libdev/frtl/src/libfor/for_main.c:(.text+0x38): undefined reference to `MAIN__'
make[2]: *** [dexe.grd] Error 1
make[2]: Leaving directory `/root/kage/hpl/testing/ptest/amd64'
make[1]: *** [build_tst] Error 2
make[1]: Leaving directory `/root/kage/hpl'
make: *** [build] Error 2

ifort를 이용한 mpif90으로 컴파일하는 옵션을 아래처럼 "-nofor-main"을 추가해준다.
#LINKFLAGS = $(HPL_DEFS) -O3
LINKFLAGS = $(HPL_DEFS) -O3 -nofor-main

그러면 "MAIN__" 에 대한 에러가 사라진다.

이렇게 하여 hpl 2.0을 ACML를 이용하여 돌릴수가 있다.



참조 :
http://developer.amd.com/cpu/libraries/acml/Pages/default.aspx
http://developer.amd.com/cpu/Libraries/acml/onlinehelp/Documents/Linking_002fLinux.html#Linking_002fLinux
2010/03/31 17:39 2010/03/31 17:39
[로그인][오픈아이디란?]
Posted
Filed under Computer/HPC
SGE 6.2U5는 Sun 홈페이지서 다운로드 가능하다.
http://www.sun.com/software/sge/get_it.jsp

1. Create "sgeadmin" account
   home directory : /opt/sge

2. extract sge binary to /opt/sge

3. change owner (sgeadmin) at /opt/sge

4. set environment
[code]
SGE_ROOT=/opt/sge; export SGE_ROOT
 
ARCH=`$SGE_ROOT/util/arch`
DEFAULTMANPATH=`$SGE_ROOT/util/arch -m`
MANTYPE=`$SGE_ROOT/util/arch -mt`
 
SGE_CELL=default; export SGE_CELL
SGE_CLUSTER_NAME=p10500; export SGE_CLUSTER_NAME
SGE_QMASTER_PORT=10500; export SGE_QMASTER_PORT
SGE_EXECD_PORT=10501; export SGE_EXECD_PORT
[/code]
# . ./settings.sh

5. ssh password-less 설정을 sgeadmin 에 해준다.
 
6. install qmaster
# ./install_qmaster
모두 default로 가고 아래 두가지 사항을 고려해서 빼줘본다.
  -  JMX 설치 부분에서 JAVA가 깔려있으면 default로 나가고 안그러면 JMX설치 부분은 뺀다.
  -  shadow host 설정하는 부분에서 "n"를 선택해준다.

성공적으로 설치되면 qmaster daemon이 시작된다.

7. install sgeexecd
# ./install_execd
default로 모두 간다.

성공적으로 설치되었으면 execd 데몬이 뜬다.

8. rhel1 서버에 execd를 띄울것이면 이쪽으로 sgeadmin으로 들어간다. 그리고 install한다.
$ ./install_execd
default로 모두 간다.

성공적으로 설치되면 execd 데몬이 뜬다.

SGE Test를 해보면 문제없이 잘될것이다.
2010/02/26 16:55 2010/02/26 16:55
[로그인][오픈아이디란?]
Posted
Filed under Computer/HPC

클러스터 테스트를 위해 OS를 설치되는 10여분동안 잠시 사진 정리해 올려본다.

얼마전 2009 SEG Show를 huston에서 했었다.
설치할때 가서 좀 도와주고 끝나는날 잠시 가서 둘러볼수 있었다.

SEG Show는 처음 와봤는데 그리 크지도 않고 사람이 그리 많지도 않고 슈퍼컴이 목적이 아닌것 같다. 슈퍼컴 관련 업체는 우리를 포함해 약 4개업체정도 왔고 그외 주변 부품 업체는 2~3개 업체가 온것 같다. 그외 업체들은 모두 공학 및 과학 과련 업체라 해야할지 암튼 그런류가 대부분이었다. 이번에는 슈퍼컴 업체들도 작게 부스를 만들어 약간 소개하는정도로 끝낸것 같아보인다.

아니면 경기 침체가 커서 슈퍼컴 관련 업체에 타격이 커서 그런가? 오히려 공학 쪽 업체가 부스가 무치 큰 업체가 많았다.

User image
User image

2009/11/05 01:06 2009/11/05 01:06
[로그인][오픈아이디란?]
Posted
Filed under Computer/HPC

GotoBLAS 1.26을 회사 직원이 테스트 하신다고 컴파일을 하는데 안된다고해서 살펴봤다. 그런데 RHEL5.3에서는 컴파일이 안된다. 값을 나눌때 0값으로 값을 나누기 때문에 에러가 난다고 뜬다.
아래와 같이...


make[3]: Entering directory `/root/HPL_HOME/GotoBLAS/level1/iamax/x86_64'
gcc -c -O2 -D__64BIT__ -D_GNU_SOURCE -Wall -fPIC  -m64 -DSMP_SERVER -DMAX_CPU_NUMBER=8 -DNUM_BUFFERS=\(2*8\) -DASMNAME=isamax -DASMFNAME=isamax -DNAME=isamax -DCNAME=isamax -I../../.. -DARCH_X86_64 -DINTEL_UNKNOWN -DL1_DATA_SIZE=32768 -DL1_DATA_ASSOCIATIVE=8 -DL1_DATA_LINESIZE=64 -DL2_SIZE=262144 -DL2_ASSOCIATIVE=6 -DL2_LINESIZE=64 -DITB_SIZE=4096 -DITB_ASSOCIATIVE=4 -DITB_ENTRIES=128 -DDTB_SIZE=4096 -DDTB_ASSOCIATIVE=4 -DDTB_ENTRIES=64 -DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_CFLUSH -DNUM_SHAREDCACHE=1 -DNUM_CORES=1  -UDOUBLE -DF_INTERFACE -DABS iamax_sse.S -o ../isamax.o
In file included from ../../../common.h:201,
                 from iamax_sse.S:23:
../../../param.h:1195:21: error: In file included from ../../../common.h:201,
                 from iamax_sse.S:23:
../../../param.h:1195:21: error: division by zero in #if
../../../param.h:1195:21: error: division by zero in #if
../../../param.h:1205:21: error: division by zero in #if
../../../param.h:1205:21: error: division by zero in #if
division by zero in #if../../../param.h:1225:21: error: division by zero in #if
../../../param.h:1225:21: error: division by zero in #if
../../../param.h:1235:21: error: division by zero in #if
../../../param.h:1235:21: error: division by zero in #if

../../../param.h:1195:21: error: division by zero in #if
../../../param.h:1205:21: error: division by zero in #if
../../../param.h:1205:21: error: division by zero in #if
../../../param.h:1225:21: error: division by zero in #if
../../../param.h:1225:21: error: division by zero in #if
../../../param.h:1235:21: error: division by zero in #if
../../../param.h:1235:21: error: division by zero in #if
make[3]: *** [../isamax.o] Error 1
make[3]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1/iamax/x86_64'
make[2]: *** [isamax.o] Error 2
make[2]: *** Waiting for unfinished jobs....
make[3]: *** [../isamax_k.o] Error 1
make[3]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1/iamax/x86_64'
make[2]: *** [isamax_k.o] Error 2
make[2]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1/iamax'
make[1]: *** [libs] Error 1
make[1]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1'
make: *** [libs] Error 1
Abort!!

이것을 다시 내 노트북에서 컴파일을 해봤다. 내 노트북에서는 된다. 그래서 OS에서 지원이 안되는줄 알았다. 처음에는 OS가 서로 틀려서.... 그런데 같은 OS로 테스트를 해봐도 마찬가지로 같은 Error가 난다. 이것은 OS문제가 아닌 Hardware 문제이다.

두 컴파일 옵션을 비교해봤다. 서로 하드웨어가 틀려서 일부 틀려지는 값들이 있다. 이 값들중에 어떤것이 과연 문제를 일으킬가 고민하다 하나를 선택했다. 바로 CPU Type을....
대부분 CPU Type이 틀리면 알아서 적당히 default값으로 넘어가 컴파일 되게 되는데 이번에는 아니었다. CPU에 대한 정확한 값을 몰라 나누기를 못했나보다.

이것에 대해 설펴보니 cpuid_x86.c 코드에서 문제가 발생됬다.
그래서 그냥 뜻어 고쳤다.  ㅎㅎ 일단 가장 유사해보이는 core2로 바꿨다.

783 line에서 "return CPUTYPE_INTEL_UNKNOWN;"을 주석처리하고 CORE2로 바꿨다.
아래와 같이... 그랬더니 컴파일이 잘된다.
    }
    return CPUTYPE_CORE2;
/*    return CPUTYPE_INTEL_UNKNOWN; */
  }

그런데 한가지 문제가 더 있다.
make[3]: Entering directory `/root/HPL_HOME/GotoBLAS/level1/axpy/x86_64'
gcc -c -O2 -D__64BIT__ -D_GNU_SOURCE -Wall -fPIC  -m64 -DF_INTERFACE_GFORT -DPACKED_RETURN -DMAX_CPU_NUMBER=8 -DNUM_BUFFERS=\(2*8\) -DEXPRECISION -m128bit-long-double -DASMNAME=saxpy_k -DASMFNAME=saxpy_k_ -DNAME=saxpy_k_ -DCNAME=saxpy_k -DBUNDERSCORE=_ -DNEEDBUNDERSCORE -I../../.. -DARCH_X86_64 -DCORE2 -DL1_DATA_SIZE=32768 -DL1_DATA_ASSOCIATIVE=8 -DL1_DATA_LINESIZE=64 -DL2_SIZE=262144 -DL2_ASSOCIATIVE=6 -DL2_LINESIZE=64 -DITB_SIZE=4096 -DITB_ASSOCIATIVE=4 -DITB_ENTRIES=128 -DDTB_SIZE=4096 -DDTB_ASSOCIATIVE=4 -DDTB_ENTRIES=64 -DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_CFLUSH -DNUM_SHAREDCACHE=1 -DNUM_CORES=1  -UDOUBLE  -o ../saxpy_k.o
gcc: no input files
make[3]: *** [../saxpy_k.o] Error 1
make[3]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1/axpy/x86_64'
make[2]: *** [saxpy_k.o] Error 2
make[2]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1/axpy'
make[1]: *** [libs] Error 1
make[1]: Leaving directory `/root/HPL_HOME/GotoBLAS/level1'
make: *** [libs] Error 1

이렇게 에러가 난다. 이것은 Makefile 문제인듯하다.  이것은 아래처럼 컴파일 옵션을 바꿔주면 잘 컴파일 된다. 여기서 각 에러나는 디렉토리에서 "../../amax/x86_64/amax.S" 소스 파일 이 들어가지 않고 컴파일 되서 그렇다. 에러나는것은 아래처럼 "../../amax/x86_64/amax.S"을 넣어주고 컴파일을 하나하나 해줘도 된다. ( `/root/HPL_HOME/GotoBLAS/level1/axpy/x86_64' 디렉토리만 문제인가보다. 여기 Makefile을 살펴봐야 되나? )

 gcc -c -O2 -D__64BIT__ -D_GNU_SOURCE -Wall -fPIC  -m64 -DF_INTERFACE_GFORT -DPACKED_RETURN -DMAX_CPU_NUMBER=8 -DNUM_BUFFERS=\(2*8\) -DEXPRECISION -m128bit-long-double -DASMNAME=saxpy_k -DASMFNAME=saxpy_k_ -DNAME=saxpy_k_ -DCNAME=saxpy_k -DBUNDERSCORE=_ -DNEEDBUNDERSCORE -I../../.. -DARCH_X86_64 -DCORE2 -DL1_DATA_SIZE=32768 -DL1_DATA_ASSOCIATIVE=8 -DL1_DATA_LINESIZE=64 -DL2_SIZE=262144 -DL2_ASSOCIATIVE=6 -DL2_LINESIZE=64 -DITB_SIZE=4096 -DITB_ASSOCIATIVE=4 -DITB_ENTRIES=128 -DDTB_SIZE=4096 -DDTB_ASSOCIATIVE=4 -DDTB_ENTRIES=64 -DHAVE_CMOV -DHAVE_MMX -DHAVE_SSE -DHAVE_SSE2 -DHAVE_SSE3 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 -DHAVE_CFLUSH -DNUM_SHAREDCACHE=1 -DNUM_CORES=1  -UDOUBLE  ../../amax/x86_64/amax.S -o ../saxpy_k.o

이것은 에러나는 디렉토리에 들어가서 Makefile 을 열어서 아래처럼 수정해준다.
ifeq ($(CORE), CORE2)
SDOTKERNEL =  dot_sse_core2.S
DDOTKERNEL =  dot_sse2_core2.S
CDOTKERNEL = zdot_sse.S
ZDOTKERNEL = zdot_sse2_core2.S
endif

을 아래처럼 수정한다. 아마도 어딘가에서 CORE2란 정보를 정상적으로 전달하지 못해서 생기는 증상같다. 이렇게 해주면 CORE2로 컴파일 잘된다.

#ifeq ($(CORE), CORE2)
SDOTKERNEL =  dot_sse_core2.S
DDOTKERNEL =  dot_sse2_core2.S
CDOTKERNEL = zdot_sse.S
ZDOTKERNEL = zdot_sse2_core2.S
#endif

2009/08/19 10:17 2009/08/19 10:17
[로그인][오픈아이디란?]
Posted
Filed under Computer/HPC
http://www3.nhk.or.jp/news/k10014950601000.html

위의 주소를 클릭하면 NHK 방송국에 접속이 된다. 그리고 슈퍼컴 사진을 클릭하면 new popup 창이 떠서 그 창에서 Flash player를 선택하면 방송 화면이 나온다. 컴퓨터에 따라 다른것을 선택해야 나올수도 있겠지만.... 대부분은 Flash Player가 깔려 있을것같으니 아마 이것을 선택하면 볼수 있을것이다.

T2K Project에 2008년도에 참여해 설치가 끝났던 장비이다.
2008년도 기준 전세계 슈퍼컴 순위 20위 했던 장비이다.

이렇게 일본 방송을 통해 다시한번 나의 APPRO에서 첫 참가 Project가 떠주니 반갑다.

내용은 Prof. Takahashi(Tsukuba University) 께서 PI계산을 했는데 World record에 올라갈정도인가보다. PI 계산을 무려 2.5 trillion의 소수까지 계산해 냈다고 한다. 걸린 시간은 73시간 36분이란다. 이전에 계산된 PI는 약 600시간정도에 1.2 trillion의 소수까지 계산되었나보다. 이것으로 보면 과학의 발전이란것이 엄청나다. 아니 기계의 발전이 과학의 발전을 도와 주는건지도 모르겠다.  과학과 공학은 뗄레야 뗄수 없는 상관관계이며, 이 공학으로 현재의 과학을 많이 뒷받임해주는 장비가 바로 컴퓨터이다.

ㅎㅎ 바로 CEP 인것이다. ㅋㅋ

이거 내 홈페이지 광고가 되버리네... ㅋㅋ

암튼 멋지다.
2009/08/19 08:56 2009/08/19 08:56
[로그인][오픈아이디란?]