Для безпосереднього доступу до кластеру, перш за все необхідно створити акаунт. Для цього потрібно звернутися до адміністратора кластеру (див. Контакти).

Доступ до кластера

Доступ до кластера здійснюється за допомогою протоколу ssh по стандартному для нього 22 порту. Доменне ім’я кластера ІППММ — cl.iapmm.lviv.ua, або IP-адреса — 194.44.153.35. Таким чином, для отримання доступу до кластера користувачеві необхідно:

Для користувачів, що використовують UNIX-системи (Linux, Free-BSD, ...)

ssh user@cl.iapmm.lviv.ua

або

ssh user@194.44.153.35

Користувачі операційної системи Windows можуть використати ssh-клієнт - PuTTY

Копіювання файлів на кластер та з кластера здійснюється за допомогою команди scp, яка для транспортування використовує ssh-протокол:

Для користувачів, що використовують UNIX-системи (Linux, Free-BSD, ...)

Копіювання файлів з комп'ютера на кластер (-r використовується, якщо ви копіюєте папку з файлами):

scp -r your_folder user@cl.iapmm.lviv.ua:~/folder_in_cluster

Копіювання файлів з кластера на локальний компютер:

scp -r user@cl.iapmm.lviv.ua:~/copy_dir_cluster folder_in_local_computer/

Користувачі операційної системи Windows можуть використати - CoreFTP або WinSCP.

Компілювання та запуск задач

Компілювання послідовних задач

На кластері ІППММ встановлено стандартний для UNIX-систем набір компіляторів GNU Compiler Collection (GCC), а саме: gcc для мови програмування С, g++ для С++ та gfortran для мови програмування fortran.

Системні компілятори (встановлені при встановлені системи) — gcc, g++, gfortran (версія 4.1.2) та gcc44 (версія 4.4.4), а також додаткові компілятори — gcc-47, g++-47, gfortran-47 (версія 4.7.1), які встановлені в мережеву NFS директорію /share/apps/opt. Для додаткових компіляторів встановлено OpenMPI, який знаходиться в /share/apps/ompi-gcc .

Компілювання задач стандартних для UNIX-систем здійснюється за допомогою команди:

CC=gcc-47 CXX=g++-47 FC=gfortran-47 ./configure

Компілювання програм на кластері на мовах С, С++ та FORTRAN здійснюються так:

gcc your_prog.c -o executable_file

g++ your_prog.cpp -o executable_file

gfortran your_prog.f -o executable_file

!!!Зауважимо, що замість застарілих компіляторів gcc, g++, gfortran, можна використовувати новіші, в назві яких додано індекс -47: gcc-47, g++-47, gfortran-47.

Компілювання паралельних задач

Усім компіляторам встановлено відповідники OpenMPI (C — mpicc; C++ — mpic++; FORTRAN — mpif77, mpif90), що використовуються для компілювання паралельних задач. Проте, на відміну від вибору GCC компілятора, вибір версії відповідного OpenMPI здійснюється за допомогою команди mpi-selector.

Переглядаємо, які версії OpenMPI доступні:

[user@cl ~]$ mpi-selector --list

openmpi-1.4-gcc-i386

openmpi-1.4-gcc-x86_64

openmpi-gcc47-1.4.5

rocks-openmpi-1.4.3

Дивимось, яка версія використовується зараз:

[user@cl ~]$ mpi-selector --query

default:rocks-openmpi-1.4.3

level:user

Вибираємо новий OpenMPI:

[user@cl ~]$ mpi-selector --set openmpi-gcc47-1.4.5

Defaults already exist; overwrite them? (y/N) y

Перелогінюємось, перевіряємо версію mpicc:

[user@cl ~]$ mpicc --version

gcc-47 (GCC) 4.7.1

Copyright (C) 2012 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Усе добре, працюємо з новим OpenMPI.

Компіляція паралельних задач здійснюється подібно до компіляції послідовних задач:

mpiccc your_prog.c -o executable_file

mpic++ your_prog.cpp -o executable_file

mpif90 your_prog.f -o executable_file

Використання системи черг SGE для запуску задач на кластері

Для запуску скомпільованих задач на кластері використовується система черг Sun Grid Engine (SGE) з чергою local.q. Для цього попередньо потрібно підготувати скрипт. Нижче наведено приклади відповідних скриптів для послідовних (один процесор) та паралельних (два і більше процесорів) задач.

Скрипт для послідовних задач:

#!/bin/bash       # стрічка для виконання скрипта

#$ -N jobname  # ім’я задачі

#$ -cwd             #вказує, що файли виводяться в поточну директорію

#$ -j y                # створює файли jobname.oNomer та jobname.poNomer. jobname.oNomer містить інформацію про дані з терміналу, jobname.poNomer — звіт про помилки

#$ -S /bin/bash  #задає командне середовище — /bin/bash

#$ -q local.q      #визначає назву черги — local.q

#$ -V                  # вказує копіювати змінні середовища при запуску задачі

./executable_file  #запускає виконавчий файл з назвою "executable_file"

Скрипт для паралельних задач:

#!/bin/bash

#$ -N jobname

#$ -cwd

#$ -j y

#$ -S /bin/bash

#$ -q local.q

#$ -pe orte nuc_num                           #кількість ядер (nuc_num), яка буде використовуватися для паралельної задачі

#$ -V

mpirun -np nuc_num ./executable_file   #запускає виконавчий файл executable_file. Значення параметру nuc_num встановлюється таким, як і значення біля параметру orte.

Запуск скрипту здійснюється за допомогою команди qsub. Нехай скрипт збережено у файлі з назвою sge_test.sh, тоді він запускається так:

qsub sge_test.sh

Моніторинг усіх задач здійснюється за допомогою команди qstat -u "*", видалення задачі з номером id_job — за допомогою команди qdel id_job. Детальніше про ці команди можна прочитати виконавши man qsub, man qstat, man qdel. Про команди SGE можна дізнатись тут.