포켓몬 고 만 하겠다는건 아니고 ㅋㅋㅋ (응?)
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
2020년도 끝! (0) | 2020.12.31 |
---|---|
게임에 푹 빠진 하루 (0) | 2020.12.27 |
크리스마스 맞냐.. (0) | 2020.12.25 |
먼가 정신없이 주말이 또 끝났네 (0) | 2020.12.20 |
딸기 2 입양 (0) | 2020.12.19 |
포켓몬 고 만 하겠다는건 아니고 ㅋㅋㅋ (응?)
2020년도 끝! (0) | 2020.12.31 |
---|---|
게임에 푹 빠진 하루 (0) | 2020.12.27 |
크리스마스 맞냐.. (0) | 2020.12.25 |
먼가 정신없이 주말이 또 끝났네 (0) | 2020.12.20 |
딸기 2 입양 (0) | 2020.12.19 |
듀얼스크린쪽은 묘하게 앱 공간이 분리된 느낌이랄까...
어찌 띄우는데 확실하게 띄우고 내리는 법을 잘 모르겠다 ㅠㅠ
LG 핸드폰 수리점 다녀옴 (0) | 2020.12.28 |
---|---|
lg 개통일 확인 (0) | 2020.12.26 |
Lg v50s 구매 (0) | 2020.12.24 |
에그 없애고 요금제 갈아 탈까? (0) | 2020.11.26 |
V50 V50s 흐음.. (2) | 2020.11.21 |
원래 10년 전 부터 가뜩이나 음악 못 틀고 하면서 분위기 안나더니
올해는 코로나로 인해 정말 크리스마스 분위기 1도 나지 않는다.
게임에 푹 빠진 하루 (0) | 2020.12.27 |
---|---|
연말을 향해 고!! (0) | 2020.12.26 |
먼가 정신없이 주말이 또 끝났네 (0) | 2020.12.20 |
딸기 2 입양 (0) | 2020.12.19 |
열풍기 도착 (0) | 2020.12.17 |
담배 냄새 빼면 괜찮은 듯 ㅋㅋ
lg 개통일 확인 (0) | 2020.12.26 |
---|---|
lg v50s 듀얼 스크린에 멀티 스크린 (0) | 2020.12.25 |
에그 없애고 요금제 갈아 탈까? (0) | 2020.11.26 |
V50 V50s 흐음.. (2) | 2020.11.21 |
아이패드용 rdp 어플 (2) | 2020.10.17 |
[링크 : https://www.raspberrypi.org/forums/viewtopic.php?t=251688]
[링크 : https://github.com/FreeTubeApp/FreeTube]
[링크 : https://www.smtube.org/]
bazel on rpi (0) | 2021.01.18 |
---|---|
라즈베리에 GUI 환경 설치하기 (0) | 2021.01.11 |
mpicc on rpi (0) | 2020.12.15 |
node-red UI bashboard (0) | 2020.12.08 |
rpi node-red (0) | 2020.12.07 |
결론만 말하자면, virtualbox에서 가상 cpu의 갯수는 아래의 곱으로 설정을 해주어야 한다.
물리 서버에서 한다면 하이퍼 쓰레드랑 고려해서 적절하게 해주면 될 듯.
아래의 값이 기본값인데 openhpc 에서는 좀 높게 설정하네?
Sockets=1 CoresPerSocket=1 ThreadsPerCore=1 |
/etc/slurm/slurm.conf.ohpc
Sockets=2 CoresPerSocket=8 ThreadsPerCore=2 |
Socket은 TCP랑은 1도 상관없는 물리적인 CPU 소켓 갯수를 의미한다.
요즘 추세야 1cpu 멀티코어니까 1로 해도 무방할듯하고
CoresPerSocket은 1개 물리 CPU에 들어있는 physical CPU의 갯수
ThreadsPerCore는 intel 기준 HT 사용시 2로 1개 코어에서 사용하는 쓰레드 갯수를 의미한다.
Sockets Number of physical processor sockets/chips on the node (e.g. "2"). If Sockets is omitted, it will be inferred from CPUs, CoresPerSocket, and ThreadsPerCore. NOTE: If you have multi-core processors, you will likely need to specify these parameters. Sockets and SocketsPerBoard are mutually exclusive. If Sockets is specified when Boards is also used, Sockets is interpreted as SocketsPerBoard rather than total sockets. The default value is 1. CoresPerSocket Number of cores in a single physical processor socket (e.g. "2"). The CoresPerSocket value describes physical cores, not the logical number of processors per socket. NOTE: If you have multi-core processors, you will likely need to specify this parameter in order to optimize scheduling. The default value is 1. ThreadsPerCore Number of logical threads in a single physical core (e.g. "2"). Note that the Slurm can allocate resources to jobs down to the resolution of a core. If your system is configured with more than one thread per core, execution of a different job on each thread is not supported unless you configure SelectTypeParameters=CR_CPU plus CPUs; do not configure Sockets, CoresPerSocket or ThreadsPerCore. A job can execute a one task per thread from within one job step or execute a distinct job step on each of the threads. Note also if you are running with more than 1 thread per core and running the select/cons_res or select/cons_tres plugin then you will want to set the SelectTypeParameters variable to something other than CR_CPU to avoid unexpected results. The default value is 1. |
[링크 : https://slurm.schedmd.com/slurm.conf.html]
CPUs: Count of processors on each compute node. If CPUs is omitted, it will be inferred from: Sockets, CoresPerSocket, and ThreadsPerCore. Sockets: Number of physical processor sockets/chips on the node. If Sockets is omitted, it will be inferred from: CPUs, CoresPerSocket, and ThreadsPerCore. CoresPerSocket: Number of cores in a single physical processor socket. The CoresPerSocket value describes physical cores, not the logical number of processors per socket. ThreadsPerCore: Number of logical threads in a single physical core. |
xcat 는 arm 미지원 (0) | 2020.12.28 |
---|---|
xcat stateful, stateless (0) | 2020.12.28 |
slurm 먼가 까다롭네... (3) | 2020.12.23 |
slurm.conf 생성기 (0) | 2020.12.23 |
openhpc, slurm 시도.. (0) | 2020.12.22 |
수동으로 막 서비스 올리고 쑈를 해야지 먼가 돌아가는 척 하는 것 같은데
일단은 먼가 이제야 실행을 하려고 하나보다 싶은 느낌..
# srun mpi_hello_world srun: error: openhpc-1: task 0: Exited with exit code 2 slurmstepd: error: couldn't chdir to `/root/src/mpitutorial/tutorials/mpi-hello-world/code': No such file or directory: going to /tmp instead slurmstepd: error: execve(): mpi_hello_world: No such file or directory |
헐...?!?!?
vnfs를 다시 만들어야 하게 생겼네 ㅠㅠ
# srun mpi_hello_world
srun: error: openhpc-1: task 0: Exited with exit code 127
mpi_hello_world: error while loading shared libraries: libmpi.so.40: cannot open shared object file: No such file or directory
크흡.. 너무 최신버전으로 빌드했나 ㅠㅠ
# find / -name libmpi*
find: '/proc/sys/fs/binfmt_misc': No such device
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.a
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.so.12
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.so.12.1.8
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpich.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpichcxx.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpichf90.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpicxx.a
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpicxx.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpicxx.so.12
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpicxx.so.12.1.8
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpifort.a
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpifort.so
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpifort.so.12
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpifort.so.12.1.8
+
# cat makefile
EXECS=mpi_hello_world
MPICC?=mpicc
all: ${EXECS}
mpi_hello_world: mpi_hello_world.c
${MPICC} -o mpi_hello_world mpi_hello_world.c /opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.so.12.1.8
clean:
rm -f ${EXECS}
링크된 파일을 보는데 not found 흐음...
# ldd mpi_hello_world
linux-vdso.so.1 (0x00007ffeeb74c000)
libmpi.so.12 => not found
libmpi.so.40 => /usr/local/lib/libmpi.so.40 (0x00007f75294fc000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f75292dc000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7528f19000)
libopen-rte.so.40 => /usr/local/lib/libopen-rte.so.40 (0x00007f7528c63000)
libopen-pal.so.40 => /usr/local/lib/libopen-pal.so.40 (0x00007f752895c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7528758000)
librt.so.1 => /lib64/librt.so.1 (0x00007f7528550000)
libm.so.6 => /lib64/libm.so.6 (0x00007f75281ce000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f7527fca000)
/lib64/ld-linux-x86-64.so.2 (0x00007f752981f000)
[링크 : https://stackoverflow.com/questions/3384897/]
+
ldconfig 환경 설정에서 하나 추가해주고 했는데
# cat /etc/ld.so.conf.d/bind-export-x86_64.conf
/usr/lib64//bind9-export/
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/
일단은 mpi가 추가된건 확인
# ldconfig -v | grep mpi
ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib:
libmpicxx.so.12 -> libmpicxx.so.12.1.8
libmpi.so.12 -> libopa.so
libmpifort.so.12 -> libmpifort.so.12.1.8
이제는 libmpi.so.12는 사라지고 libmpi.so.40이 없다고 나오는군.. 흐음..
$ srun mpi_hello_world
mpi_hello_world: error while loading shared libraries: libmpi.so.40: cannot open shared object file: No such file or directory
srun: error: openhpc-1: task 0: Exited with exit code 127
[링크 : https://yongary.tistory.com/45]
[링크 : https://chuls-lee.tistory.com/10]
+
나 앞에서 openmpi 4.0 빌드한다고 왜 쑈했냐...
/opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/bin |
# ldd mpi_hello_world
linux-vdso.so.1 (0x00007ffdd4285000)
libmpi.so.12 => /opt/ohpc/pub/mpi/mpich-ucx-gnu9-ohpc/3.3.2/lib/libmpi.so.12 (0x00007f477fe00000)
libc.so.6 => /lib64/libc.so.6 (0x00007f477fa3d000)
libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007f477f5c0000)
libm.so.6 => /lib64/libm.so.6 (0x00007f477f23e000)
libucp.so.0 => /lib64/libucp.so.0 (0x00007f477efdf000)
libucs.so.0 => /lib64/libucs.so.0 (0x00007f477eda1000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f477eb81000)
librt.so.1 => /lib64/librt.so.1 (0x00007f477e979000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f477e761000)
libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007f477e520000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4780354000)
libz.so.1 => /lib64/libz.so.1 (0x00007f477e309000)
libuct.so.0 => /lib64/libuct.so.0 (0x00007f477e0dd000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f477ded1000)
libucm.so.0 => /lib64/libucm.so.0 (0x00007f477dcbb000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f477dab7000)
아니 왜 여기서 fortran이 나와 ㅠㅠㅠㅠㅠㅠㅠㅠ
$ srun mpi_hello_world
mpi_hello_world: error while loading shared libraries: libgfortran.so.5: cannot open shared object file: No such file or directory
srun: error: openhpc-1: task 0: Exited with exit code 127
+ 이 세개만 추가하면 되려나? ㅠㅠ
yum -y --installroot=$CHROOT install libgfortran libquadmath ucx |
libgfortran.i686 : Fortran runtime libquadmath-devel.x86_64 : GCC __float128 support ucx.x86_64 : UCX is a communication library implementing high-performance messaging |
[링크 : https://pkgs.org/download/libucp.so.0()(64bit)]
일단은 실행에 성공한 듯?
다만 nodename에 설정한 이상의 task는 실행할 수 없는 듯?(-n)
NodeName=openhpc-[1-2] Sockets=1 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN |
아무튼 2개 노드에 1개의 태스크를 하라니 1개는 할당을 못하고 openhpc-1에서만 구동한 것 같고
$ srun -N 2 -n 1 mpi_hello_world srun: Warning: can't run 1 processes on 2 nodes, setting nnodes to 1 Hello world from processor openhpc-1, rank 0 out of 1 processors |
2개 노드에 2개 태스크 하라니 openhpc-1,openhpc-2 노드에서 각각 하나씩 실행한 듯.
$ srun -N 2 -n 2 mpi_hello_world Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors |
다만 2개 노드에 3개 하라니까 그 숫자 이상부터는 task로 할당되는데 실행이 안되는걸 보면 또 설정 문제인가.. ㅠㅠ
$ srun -N 2 -n 3 mpi_hello_world srun: Requested partition configuration not available now srun: job 84 queued and waiting for resources ^Csrun: Job allocation 84 has been revoked srun: Force Terminated job 84 |
slurmd랑 munged가 좀 튀는데..
너무 순식간에 끝나는 애라 그런가 top에 잡히지도 않는다.
+
서버측의 /var/log/slurmctld.log 를 확인하니
시스템에서 구성된 리소스 보다 크게 잡을순 없다고..
[2020-12-23T02:40:11.527] error: Node openhpc-1 has low socket*core*thread count (1 < 4) [2020-12-23T02:40:11.527] error: Node openhpc-1 has low cpu count (1 < 4) [2020-12-23T02:40:11.527] error: _slurm_rpc_node_registration node=openhpc-1: Invalid argument |
+
virtualbox에서 cpu를 4개로 올려주고 설정 바꾸어서 정상작동 확인
$ srun -N 2 -n 4 mpi_hello_world Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors |
저 rank는 멀까..
$ srun -N 2 -n 8 mpi_hello_world Hello world from processor openhpc-2, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-1, rank 0 out of 1 processors Hello world from processor openhpc-2, rank 0 out of 1 processors |
아무튼 사용 가능한 코어 갯수를 넘어가면 아래와 같이 무기한 대기가 걸려
사실상 실행을 못하게 되는 것 같기도 하다?
$ srun -N 2 -n 12 mpi_hello_world srun: Requested partition configuration not available now srun: job 92 queued and waiting for resources ^Csrun: Job allocation 92 has been revoked srun: Force Terminated job 92 |
xcat stateful, stateless (0) | 2020.12.28 |
---|---|
slurm.conf 과 cpu 코어 (1) | 2020.12.23 |
slurm.conf 생성기 (0) | 2020.12.23 |
openhpc, slurm 시도.. (0) | 2020.12.22 |
openmpi 및 예제 (0) | 2020.12.22 |
slurm.conf 과 cpu 코어 (1) | 2020.12.23 |
---|---|
slurm 먼가 까다롭네... (3) | 2020.12.23 |
openhpc, slurm 시도.. (0) | 2020.12.22 |
openmpi 및 예제 (0) | 2020.12.22 |
openmpi on centos8 (0) | 2020.12.17 |
일단 현재 실행은 실패 -_ㅠ
scontrol update NodeName=c[1-5] state=RESUME sinfo -all srun -n8 hellompi.o sacct -a |
[링크 : https://groups.io/g/OpenHPC-users/topic/srun_required_node_not/74202339...]
# srun -n 2 -N 2 --pty /bin/bash srun: Required node not available (down, drained or reserved) srun: job 5 queued and waiting for resources ^Csrun: Job allocation 5 has been revoked srun: Force Terminated job 5 |
# sinfo -all Tue Dec 22 02:54:55 2020 PARTITION AVAIL TIMELIMIT JOB_SIZE ROOT OVERSUBS GROUPS NODES STATE NODELIST normal* up 1-00:00:00 1-infinite no EXCLUSIV all 2 drained openhpc-[1-2] |
# sacct -a JobID JobName Partition Account AllocCPUS State ExitCode ------------ ---------- ---------- ---------- ---------- ---------- -------- 2 bash normal (null) 0 CANCELLED 0:0 3 bash normal (null) 0 CANCELLED 0:0 4 bash normal (null) 0 CANCELLED 0:0 5 bash normal (null) 0 CANCELLED 0:0 6 mpi_hello+ normal (null) 0 CANCELLED 0:0 |
drain 상태..
[링크 : https://stackoverflow.com/questions/22480627/what-does-the-state-drain-mean]
state를 바꾸어 주면 된다는데 안되네..
작업을 다 죽이고 idle로 바꾸라는데 작업은 어떻게 죽이지?
[링크 : https://stackoverflow.com/questions/29535118/how-to-undrain-slurm-nodes-in-drain-state]
slurm job cancel(잡 죽이기)
The normal method to kill a Slurm job is: $ scancel <jobid> You can find your jobid with the following command: $ squeue -u $USER If the the job id is 1234567 then to kill the job: $ scancel 1234567 |
[링크 : https://researchcomputing.princeton.edu/faq/how-to-kill-a-slurm-job]
state가 cancelled 는 이미 취소된것이기 때문에 scancel로 취소되지 않는다.
$ scancel -v 8 scancel: Terminating job 8 scancel: error: Kill job error on job id 8: Job/step already completing or completed |
왜 안되나 했는데 코어와 쓰레드 갯수에 제한이 있었던 건가?
# sinfo -R -v |
Reason=Low socket*core*thread count, Low CPUs |
[링크 : https://groups.io/g/OpenHPC-users/topic/slurmd_in_compute_nodes/22449264?p=]
+
오예~
원래는 2 8 2 였나 그런데 1 1 1 로 바꾸니
NodeName=openhpc-[1-2] Sockets=1 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN |
idle로 전환이 된다?
# scontrol update Nodename=openhpc-[1-2] state=idle # sinfo -all Tue Dec 22 03:49:23 2020 PARTITION AVAIL TIMELIMIT JOB_SIZE ROOT OVERSUBS GROUPS NODES STATE NODELIST normal* up 1-00:00:00 1-infinite no EXCLUSIV all 2 idle* openhpc-[1-2] |
실행 안되는건 매한가지 ㅠㅠ
+
컴퓨트 노드쪽의 slurmd 가 구동되지 않아서 그런듯
하지만...
역시 안되는건 매한가지 ㅠㅠ 산넘어 산이구나
srun: error: slurm_receive_msgs: Socket timed out on send/recv operation |
+
음...
[2020-12-22T04:18:08.435] error: Node openhpc-1 has low socket*core*thread count (1 < 32) [2020-12-22T04:18:08.435] error: Node openhpc-1 has low cpu count (1 < 32) [2020-12-22T04:18:08.435] error: _slurm_rpc_node_registration node=openhpc-1: Invalid argument |
도대체 어떻게 값을 주어야 잘 도냐...
# slurmd -C NodeName=openhpc-1 CPUs=1 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=968 |
NodeName=openhpc-[1-2] Sockets=1 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN |
아래가 원래값. 위에 식에 의해서 2*8*2 니까 32를 넘어서 작동이 되는건가?
NodeName=c[1-4] Sockets=2 CoresPerSocket=8 ThreadsPerCore=2 State=UNKNOWN |
slurm 먼가 까다롭네... (3) | 2020.12.23 |
---|---|
slurm.conf 생성기 (0) | 2020.12.23 |
openmpi 및 예제 (0) | 2020.12.22 |
openmpi on centos8 (0) | 2020.12.17 |
slurmd: fatal: Unable to determine this slurmd's NodeName (0) | 2020.12.15 |
ㅋㅋㅋ lots of output
아무튼 configure에 --prefix로 설치될 경로를 넣어주고
make all install 하면 끝~
$ gunzip -c openmpi-4.1.0.tar.gz | tar xf -
$ cd openmpi-4.1.0
$ ./configure --prefix=/usr/local
<...lots of output...>
$ make all install
[링크 : https://www.open-mpi.org/faq/?category=building]
예제
# ./mpi_hello_world Hello world from processor master, rank 0 out of 1 processors |
slurm.conf 생성기 (0) | 2020.12.23 |
---|---|
openhpc, slurm 시도.. (0) | 2020.12.22 |
openmpi on centos8 (0) | 2020.12.17 |
slurmd: fatal: Unable to determine this slurmd's NodeName (0) | 2020.12.15 |
environment module / lmod (0) | 2020.12.15 |