390 likes | 605 Views
Использование вычислительного кластера Кемеровского государственного университета. Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей. Мотивация создания вычислительных кластеров.
E N D
Использование вычислительного кластера Кемеровского государственного университета Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей
Мотивация создания вычислительных кластеров Для получения численного решения многих задач механики, гидро- и газодинамики, ядерной физики и других областей физики с надлежащей точностью зачастую недостаточно вычислительных мощностей одного ПК. Выход: заставить работать над задачей несколько процессоров.
Архитектура кластера Процессор Вычислительный узел Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Ядро Кэш Кэш Кэш Кэш Оперативная память Оперативная память Сеть передачи данных Вычислительный кластер
Конфигурация кластера КемГУ • 9 вычислительных узлов (4-старых, 5-новых) и 1 управляющий • по 2 процессора Intel Xeon 5410 (2.33 Ггц) в каждом из 4 старых узлов • по 2 процессора Intel Xeon 5630 (2.53Ггц) в каждом из 5 новых узлов • по 4 ядра в каждом процессоре • по 8 Гб памяти в каждом из 4 старых узлов • по 24 Гб памяти в каждом из 5 новых узлов • Gigabit Ethernet - управляющая сеть, Infiniband – вычислительная сеть • 1,5 Тб дискового пространства • операционная система Linux CentOS
Сайт поддержки пользователей кластера (icp.kemsu.ru) • Данная презентация • Бланк заявки на регистрацию пользователя • Правила работы с вычислительным кластером КемГУ • Полезные программы • Учебные материалы (ссылки на литературу и интернет-ресурсы) • Памятка пользователю Раздел «Университетский кластер»
Порядок предоставления доступа к кластеру КемГУ • Ознакомиться с правилами для пользователей вычислительного кластера Кемеровского государственного университета • Заполнить бланк заявки и отнести на подпись проректору по научной работе и информатизации КемГУ • 3. Получить логин и пароль учетной записиу Власенко Андрея (2140 каб.) или Андреева Никиты (2129 каб.)
Программирование для кластерной вычислительной системы При запуске обычных последовательных программ на вычислительном кластере невозможно получить выигрыш в производительности. Вывод: требуется инструментарий для распараллеливания задачи на несколько процессоров. MPI (Message Passing Interface) – стандарт де-факто при программировании вычислительных кластеров. (Афанасьев К.Е., Стуколов С.В. «Многопроцессорные вычислительные системы и параллельное программирование») http://umk.portal.kemsu.ru/mps/index.htm MPI сложен в освоении и требует изрядных навыков прикладного программирования.
MPI на кластере КемГУ • Существует единственный стандарт MPI: • http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf • И множество реализаций стандарта (MPI Chameleon, Open MPI, MVAPICH, Intel MPI, HP MPI, Microsoft MPI и др.), которые содержат библиотеки функций и набор утилит и скриптов. • На кластере КемГУ: • MVAPICH2-1.6 • rocks-openmpi 1.4.1
Программирование для кластерной вычислительной системы • OpenMP – стандарт де-факто при программировании многопроцессорных (многоядерных) систем с общей памятью. С его помощью можно загрузить 8 ядер на одном узле. • 1. http://developers.sun.ru/content/view/7/6/ • 2. http://www.citforum.ru/hardware/arch/lectures/6.shtml • UPC (Unified Parallel C) – подходит для программирования как систем с общей, так и с распределенной памятью. • TarekEl-Ghazawi, WilliamCarlson, ThomasSterling, KatherineYelick: «UPC: DistributedSharedMemoryProgramming» • http://upc.mtu.edu/tutorials.html • http://upc.gwu.edu/downloads/Manual-1.2.pdf
Вход на кластер Необходимо осуществить ssh-соединение (Secure Shell). Для этого требуется ssh-клиент. Один из самых популярных и удобных клиентов – Putty http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Ввод IP-адреса 82.179.12.167 или master.kemsu.ru
Выбор кодировки Translation UTF-8
Ввод логина Вместо vlas свой логин Ввод пароля При вводе пароль не отображается
Командная строка Приглашение командной строки в ОС Linux. • Материалы по ОС Linux: • http://rus-linux.net/MyLDP/BOOKS/inst-322/node5.htm • http://fencingural.narod.ru/linux/index.htm
Смена пароля passwd
Файловый менеджер Midnight Commander Вызов файлового менеджера Midnight Commander (mc)
Копирование файлов на кластер / с кластера Используем программу WinSCP
Копирование файлов на кластер / с кластера 82.179.12.167 или master.kemsu.ru
Копирование файлов на кластер / с кластера Скопировать папку programs_for_study в домашнюю директорию.
Переименование/перемещениефайловПереименование/перемещениефайлов В Midnight commander нажать комбинацию Ctrl+O mv pbsjob1_vlas pbsjob1_stud{i} Кнопку «вверх» - появится предыдущая набранная строка mv pbsjob2_vlas pbsjob2_stud{i} Кнопку «вверх» - появится предыдущая набранная строка mv pbsjob3_vlas pbsjob3_stud{i} Кнопку «вверх» - появится предыдущая набранная строка mv pbsjob4_vlas pbsjob4_stud{i} ls – выводит содержимое каталога Ctrl + O – возврат в mc
Написание исходного кода программы touch program.cpp – создает файл с названием program.cpp
Написание исходного кода программы Щелчком по кнопке F4 на имени файла program.cpp открываем его в режиме редактирования и набираем текст программы.
Выбор MPI-реализации Для этого необходимо воспользоваться утилитой mpi-selector mpi-selector --list (список всех установленных MPI-реализаций) mpi-selector --query (текущая MPI-реализация)
Выбор MPI-реализации mpi-selector --set mvapich2-1.6 (выбор другой MPI-реализации). После этого необходимо завершить сеанс и открыть новый. mpi-selector --query
Компиляция mpi-программына C mpicxx c_mpi_prog.cpp –o c_mpi_prog.out
Компиляция mpi-программына fortran mpif77 fortran_mpi_prog.f –o fortran_mpi_prog.out Или mpif90 fortran_mpi_prog.f –o fortran_mpi_prog.out
Создание скрипта запуска для MVAPICH2 pbsjob1_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q srail@master или#PBS -q mrail@master #PBS -N vlasjob1 #PBS -o /home/testuser/out.txt #PBS -e /home/testuser/err.txt #!/bin/sh /opt/mpiexec/bin/mpiexec –n 4 /home/testuser/fortran_mpi_prog.out где walltime – предполагаемоевремя выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядерна каждом узле. #PBS -q srail@master - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out .txt– указание пути для записи файла потока вывода #PBS -o /home/tester/err.txt – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор mpiexec– команда запуска MPI-приложения
Создание скрипта запуска дляOpenMPI pbsjob1_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q srail@master или#PBS -q mrail@master #PBS -N vlasjob1 #PBS -o /home/testuser/out.txt #PBS -e /home/testuser/err.txt #!/bin/sh /opt/openmpi/bin/mpiexec –n 4 –machinefile $PBS_NODEFILE /home/testuser/fortran_mpi_prog.out
Постановка задачи в очередь [ testuser@master ~]$ qsub pbsjob1_vlas Отслеживание состояния задачи в очереди [ testuser@master ~]$ qstat Job id Name User Time Use S Queue ------------------- ---------------- --------------- 146.master my_job tester 0 R workq 147.master job_hpl tester 0 Q workq 148.master job_hpl tester 0 Q workq 149.master job_hpl tester 0 Q workq 150.master job_hpl tester 0 Q workq
Файлы с результатами работы Файл результатов (поток stdout): /home/testuser/out.txt Файл с ошибками (поток stderr): /home/testuser/err.txt
Компиляция openmp-программына C [ testuser@master ~]$ g++ -fopenmp c_openmp_prog.cpp –o c_openmp_prog.out Компиляция openmp-программына Fortran [ testuser@master ~]$gfortran -fopenmp fortran_openmp_prog.f –o fortran_openmp_prog.out
Создание скрипта запуска для openmp-программы pbsjob3_vlas #PBS -l walltime=00:01:00,nodes=1:ppn=8 #PBS -q mrail@master #PBS -N vlasjob3 #PBS -o /home/testuser/out.txt #PBS -e /home/testuser/err.txt #!/bin/sh export OMP_NUM_THREADS=8 /home/testuser/c_openmp_prog.out где OMP_NUM_THREADS – команда запуска параллельного приложения
Постановка задачи в очередь [ testuser@master ~]$ qsub pbsjob3_vlas Отслеживание состояния задачи в очереди [ testuser@master ~]$ qstat
Компиляция UPC программы [ testuser@master ~]$ upcc -network=udp -pthreads=8 upc_prog.c -o upc_prog.out
Создание скрипта запуска для UPC программы pbsjob5_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=8 #PBS -q mrail@master #PBS -N vlasjob5 #PBS -o /home/testuser/out_vlasjob5.txt #PBS -e /home/testuser/err_vlasjob5.txt #!/bin/sh /opt/bupc-runtime-2.10.0/bin/upcrun -n 32 /home/vlas/programs_for_study/upc_prog.out
Копирование файлов результатов на локальный компьютер Осуществляется при помощи программы WinSCP таким же образом, как и копирование с локального компьютера на кластер.