graphsinspace / graspe

Graphs in Space: Graph Embeddings for Machine Learning on Complex Data
GNU General Public License v3.0
7 stars 0 forks source link

Axiom Conda Environment #18

Open nmilosev opened 3 years ago

nmilosev commented 3 years ago
# instaliram minicondu, ako pita da li da se "ugradi" u shell kažem da

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# restartujem terminal session (izađem/uđem ili "source ~/.bashrc") da bi se aktivirao base conda env (pisaće "(base)" u promptu)

# pravim conda env sa svim "gadnim"/"velikim" paketima
conda create -n graspe python==3.8.5 dgl dgl-cuda11.0 networkx pandas scikit-learn tensorflow-gpu pytorch=1.7.1 -c pytorch -c dglteam -c conda-forge

# aktiviram novi env (prompt kaže "(graspe)")
conda activate graspe

# unutar novog env-a instaliram još šta nedostaje
pip install black==20.8b1 cython==0.29.23 deepwalk==1.0.3 gensim==3.8.3 node2vec==0.4.3 numba==0.52.0 pylint==2.6.0 pytest==6.2.1 python-levenshtein==0.12.2 seaborn==0.11.1 tqdm==4.56.0

# pytorch-geometric mora ovako, malo je nezgodno
export CUDA=cu110
export TORCH=1.7.0
pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
pip install torch-geometric
nmilosev commented 3 years ago

Za pokretanje joba na slurm-u na axiom klasteru treba imati sbatch fajl npr. graspe.sbatch koji definiše kako se pokreće task. Sve se radi sa pristupnog node-a Na primer:

#!/bin/bash
#SBATCH --job-name=graspe <-- ime job-a vidljivo svima
#SBATCH --partition=cuda <-- slurm particija, ako treba GPU onda "cuda", za CPU intensive taskove "all"
#SBATCH --nodes=1 <-- broj node-ova za izvršavanje
#SBATCH --cpus-per-task=12 <-- broj jezgara koje da se rezervišu, maksimum je 12, n17 ima 6
#SBATCH --nodelist=n17 <-- ako hoću jedan (ili više, odvojeno zarezom) node-ova
#SBATCH --time=24:00:00 #the maximum walltime in format h:m:s <-- maksimalno vreme izvršavanja
#SBATCH --output slurm.%J.out # STDOUT <-- output fajl, %J će biti slurm job id
#SBATCH --error slurm.%J.err # STDERR <-- error output fajl, %J će biti slurm job id
#SBATCH --export=ALL <-- koje env. varijable da se proslede, najbolje je uvek ALL
srun /home/milosevicn/miniconda3/envs/graspe/bin/python preprocess-distrib.py <-- glavni red kako se pokreće skripta, putanje su relativne, znači ne moraju biti apsolutne ako se job stavi u queue iz tekućeg foldera, jedino treba navesti apsolutnu putanju do python interpretera da bi se koristio željeni conda env.

Korisne komande:

squeue <-- pregled šta se trenutno izvršava
sbatch graspe.sbatch <-- slanje joba za izvršavanje, ispiše job ID
scancel job_id <-- otkaže task

Primer za n17, graspe da se pokrene:

#!/bin/bash
#SBATCH --job-name=graspe
#SBATCH --partition=cuda
#SBATCH --nodes=1
#SBATCH --cpus-per-task=6
#SBATCH --nodelist=n17
#SBATCH --time=24:00:00 #the maximum walltime in format h:m:s
#SBATCH --output slurm.%J.out # STDOUT
#SBATCH --error slurm.%J.err # STDERR
#SBATCH --export=ALL

srun /home/milosevicn/miniconda3/envs/graspe/bin/python src/graspe

Ovo pokrenem iz root foldera projekta sa sbatch graspe.sbatch i pratim šta se dešava sa squeue.

nmilosev commented 3 years ago

Gensim se buni ako je 4.x verzija, za sada ostaviti na 3.8.3!