https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://fplunist.notion.site/1-Use-of-Linux-Clusters-9da322967c1344f5a96da0d20a950f02

목표

<aside> 📌 Linux cluster 환경에서 프로그래밍을 할 수 있는 환경에 익숙해지는 것

</aside>

본 강의가 활용될 시 Linux cluster 환경에서 진행되었기에 해당 Chapter를 넣게 되었습니다. 하지만 해당 강의의 주제인 Particle-In-Cell method와는 관련이 없으므로 내용을 skip하여도 전혀 문제가 없습니다. 본 Chapter는 울산과학기술원 핵융합 및 플라즈마 응용연구실의 연구실 Orientation 자료 일부를 바탕으로 만들어졌습니다.

학습 범위

<aside> <img src="/icons/paste_gray.svg" alt="/icons/paste_gray.svg" width="40px" /> Computing Server 접속 Linux 명령어들 Linux 환경변수 및 Default 환경 만들기

</aside>

Computing Server 접속

전부라고 해도 과언이 아닐 만큼 거의 모든 (슈퍼) 컴퓨터 서버들이 SSH (Secure SHell) protocol을 사용하고 있습니다**.** 컴퓨터들간의 통신 방법중 하나로 생각하면 됩니다. 과거 Telnet이라고 같은 역할을 하던 것이 있었으나, 차이점은 Telnet은 통신 내용을 암호화하지 않아 중간에 가로채면(hijacking) 통신 내용이 다 보이는 반면에, SSH는 64bit 암호화의 변복조 과정을 거치게 됩니다. (세상에 풀리지 않는 암호는 없고 마음만 먹으면 풀 수 있다고는 합니다…) - 관심있는 사람은 Assembly를 이용한 Reverse engineering 관련되어 재미있는 내용들을 찾을 수 있습니다.

대부분의 과학계산용 컴퓨터들이 OS (Operating System)로 LINUX를 선호함. Windows의 경우 운영체제 자체가 Computing resource를 많이 잡아 먹기 때문에, 우리가 원하는 과학계산 코드에 CPU가 집중 하기가 쉽지 않습니다. (비슷하게 high level language와 같은 MATLAB보다 c++/Fortran 등을 선호하는 이유도 MATLAB 자체가 잡아 먹는 computing resource가 크기 때문입니다). 따라서 LINUX를 본 강의에서 사용할 예정이며, 기초 명령어들에 대해 공부할 필요가 있습니다.

LINUX OS에 접근하는 방법으로는 직접적으로 LINUX가 설치되어있는 컴퓨터를 사용하는 방법과 원격으로 접속하여 사용하는 방법이 있습니다. 본인의 Desktop에 install하는 경우를 제외하고는 주로 원격으로 컴퓨팅 서버에 접속합니다. 원격으로 사용을 한다는 것은 어디서든 계산작업을 수행할 수 있습니다. (예를 들어 놀이 공원에서 바이킹을 타며 Tablet 또는 Cell phone으로도 작업이 가능합니다. 휴대용 키보드가 없다면 많은 인내심이 필요하지만 job submission 정도는 할 수 있습니다. 어디서든 일할 수 있는 장점이 있으나 어디서든 일을 해야만하는 족쇄가 될수도…있습니다.)

Linux는 다양한 종류가 있습니다. Ubuntu, Redhat, CentOS, Mint 등… 다양한 목적에 맞게끔 나와 있는 것들이 있는데 범용으로 쓰신다면 개인적으로 Ubuntu를 추천드립니다. Google에서 검색하시면 Ubuntu site에서 Ubuntu의 최신 버전을 Download 받으실 수 있고 이를 설치하는 방법을 보실 수 있습니다.