Computer 19

bashrc 설정, 생성되는 파일 권한 설정

bash는 리눅스에서 많이 사용되는 쉘 환경 중 하나입니다. .bashrc는 bash 의 유저 설정 파일입니다. 새 터미널이 bash 로 시작되면. profile 이 먼저 읽어집니다. .profile을 열어보면 $HOME/.bashrc 파일이 있으면 $HOME/.bashrc 파일을 source에 추가하라고 되어있습니다. . $HOME/.bashrc 라 적힌 줄이 있습니다. 리눅스에서 . 은 source 명령어와 같습니다. source나 . 은 현재 쉘에 스크립트 파일을 적용하라는 의미입니다. 스크립트 파일이 실행 가능이 아닐 때 사용하는 것 같습니다. .bashrc 파일에서 자주 사용하는 설정입니다. umask 022 alias ssh='ssh -Y' alias ls='ls --color=tty -F' ..

Computer 2022.04.18

VHTS와 병렬 컴퓨팅: 3. job list 파일 공유를 이용한 병렬처리

멀티 코어가 보급되기 이전에 등장한 병렬 컴퓨팅은 기본적으로 여러 컴퓨터를 사용하는 방식이었습니다. 그중 가장 대표적인 것이 MPI (massage passing interface)입니다. 여러 프로세스 사이에서, massage를 주고받는 인터페이스입니다. 이는 서로 다른 컴퓨터에서 실행 중인 프로세스에서도 성립합니다. massage라고 표현했지만, 거대 데이터가 될 수도 있습니다. mpi를 실행할 때는 mpirun 같은 명령어를 사용하고, 실행 시에 MPI common world로 노드들이 묶여서 프로세서가 실행됩니다. 실행 이후에 common world를 변화시킬 수 없습니다. 특정 node에서 에러가 발생 시, 전부 종료하고 다시 시작해야 합니다. mpi 같은 메모리 상의 massage를 공유하는 ..

Computer 2022.03.28

VHTS와 병렬 컴퓨팅: 2. python multiprocessing 을 이용한 분자 처리

VHTS와 병렬 컴퓨팅: 1. 기초 개념, file split 에 이어 python multiprocessing을 이용한 분자 특성 계산방법을 설명하겠습니다. python에서 병렬 컴퓨팅을 지원하는 모듈은 여러 가지가 있습니다. 저는 multiprocessing을 선호합니다. concurrent.futures 도 사용해보긴 했는데, 구현 자체는 쉽지만 core수가 많아지면 병렬화 효율성이 크게 떨어집니다. 작업환경은 EPIC 64 cores*2 cpus입니다. 분자 데이터 처리, 혹은 특성 계산은 많음은 수의 독립적인 데이터에 대해서 동일한 함수로 처리할 경우에 해당됩니다. 이런 경우에 적합한 병렬구조는 master/workers로 이루어진 구조입니다. master가 잡을 관리 하면서 worker에게 잡..

Computer 2022.02.27

VHTS와 병렬 컴퓨팅: 1. 기초 개념, file split

저는 컴퓨터 전공자는 아니라 체계적으로 개념을 배운 것은 아니고, 연구에 필요해서 실용적으로 배우다 보니 용어에 오개념이 있을 수도 있음을 양해해주시기를 부탁드립니다. 작업 환경은 linux입니다. 신약개발에서 가상탐색 virture high throuput screening (VHTS)이 사용된 것은 아마도 CADD의 역사와 비슷할 것이지만, 최근에는 ultra large scale이라 불릴 정도의 규모... 수천만, 수억, 수십억 이상의 분자를 가상 탐색하는 것이 트렌드입니다. 여기에 필요한 기술 중 하나가 병렬 컴퓨팅입니다. 병렬 컴퓨팅의 필요성은 다음과 같습니다. 기본적으로 하나의 프로세스는(소프트웨어) 하나의 프로세서를(하드웨어) 사용합니다. 하지만 하나의 프로세서로 낼 수 있는 성능에는 한계가..

Computer 2022.02.27

머신러닝과 통계분석: 예측에 필요한 정보에 대해

머신러닝이나 통계분석에서 주로 사용하는 용어들 중에 예측 (prediction), 판별(discrimination), 분류(classification), regression(회기), 라는 용어들이 있습니다. 사전적 의미에서 예측은 앞으로 있을 일을 미리 헤아려 짐작함 이고, 판별은 판단하며 구별함 이긴 하지만, 과거를 보고 미래를 짐작하는 것 (예측)이나 데이터의 주어진 특성를 보고 미지의 특성을 판별 하는 것은 기술적으로 같은 것입니다. 데이터의 특성 중 입력으로 주어진 것을 feature 라 부르고, 예측해야할 대상을 label 이라 부릅니다. 어떤 함수 f로 모델링한 경우라면, Y = f(X) 에서 X는 feature이고, Y는 label 입니다. 예측해야할 label이 어떤 부류에 속하는가를 예측..

vi 에디터 vimrc 설정 예시

vi (vim) 에디터는 가볍고, 다양한 기능이 있어서 리눅스에서 많이 사용됩니다. 요즘은 다른 에디터를 사용하는 사람도 많지만... 제가 사용하고 있는 vimrc 설정입니다. ~/$HOME/.vimrc 파일에 저장하면 vim을 실행할 때마다 반영되고, vi 를 열고 :를 치고 한 줄씩 입력할 수도 있습니다. vim에서 " 는 주석처리 입니다. set paste를 사용할 경우 다른 옵션과 충돌하는 경우가 있어서 사용할 때만 set paste를 직접 입력해주고 있습니다. 이름을 보면 대충 추측 가능하긴 한데, 옵션 하나하나는 잘 기억이 안 나네요. "set paste set nocompatible set incsearch set title set number set hlsearch set showmatch..

Computer 2021.10.22

머신러닝과 딥러닝

이미 딥러닝이 알려진지도 7년이 넘게 지났으니 생소한 것도 아니고, 처음 입문하는 사람이 아니라면 딥러닝이 무엇인지 모르는 사람도 많지 않을 것 같습니다. 5년 전쯤만 해도 직접 딥러닝을 사용하는 사람이 아닌 경우, 학회에서 발표하는 경우에도 머신러닝과 딥러닝의 개념을 잘못 생각하시는 분들이 많았습니다. 딥러닝 (deep learning)은 머신러닝 (machine learning, 기계학습)의 한 분야입니다. artificial neural network (ANN, 인공 신경망)에서 hidden layer 가 늘어난 deep neural network (DNN), 혹은 비슷한 네트워크 구조인 Restricted Boltzmann Machine (RBM)과 Deep Belief Network (DBN)에..

ubuntu slurm 설정 방법

slurm은 리눅스 클러스터 환경에서 많이 사용되는 스케줄러입니다. 비슷한 것으로 pbs, torque 등이 있습니다. slurm이 gpu 스케줄 관리 기능을 지원하면서 사용자가 늘었습니다. 클러스터에서 잡 관리할 때도 사용할 수 있지만, PC 1대에서도 사용하면 장점이 있습니다. 리눅스에선 기본적으로 유저의 터미널이 끊기면 그 터미널 아래에서 돌아가던 잡은 백그라운드일지라도 중단됩니다. 그래서 nohup이나 screen이나 tmux 같은 여러 툴들을 사용합니다. 스케쥴러를 사용할 수도 있습니다. 다른 툴들에 비해 스케쥴러의 장점이라 한다면, 여러 잡을 순차적으로 돌리고 싶을 때, 한 번에 여러 개의 잡을 제출 해도 동시에 실행되지 않고 순차적으로(queue) 잡이 실행 가능합니다. 그렇긴 해도 클러스터..

Computer 2021.09.02

인공지능과 기계학습

인공지능의 정의는 그렇게 명확하게 와닿지 않습니다. 지능 같은 것을 인간이 컴퓨터로 구현한 것을 인공지능이라고 말할 수 있을 텐데, 그 지능이라는 게 무엇인지도 그리 명료하지 않기 때문입니다. 하나씩 이야기해보면, 사물 인지, 수치 계산 능력, 논리적 사고, 추론, 학습능력 등 여러 가지 요소들이 있습니다. 그리고 그 요소들은 어찌 보면 서로 상당히 다르기도 합니다. 인간의 지능은 이런 다양한 요소가 총체적으로 어우러져서 나타나는 것입니다. 이런 요소들 중 하나만 떼어서 생각하면 우리가 일반적으로 생각하는 지능과는 좀 다르게 느껴집니다. 예를 들어 계산기는 계산을 잘하는데, 우리가 그것을 굳이 지능이라고 부르지는 않습니다. 계산기가 보통 사람보다 계산 잘한다고 해서 그 계산기가 사람보다 지능이 높다고 이..