Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВиталий Прокшин
1 1 Использование вычислительного кластера Кемеровского государственного университета Авторы: Власенко Андрей, Андреев Никита Докладчик: Власенко Андрей
2 2 Мотивация создания вычислительных кластеров Для получения численного решения многих задач механики, гидро- и газодинамики, ядерной физики и других областей физики с надлежащей точностью зачастую недостаточно вычислительных мощностей одного ПК. Выход: заставить работать над задачей несколько процессоров.
3 3 Архитектура кластера Вычислительный узел Вычислительный кластер Сеть передачи данных Оперативная память Кэш Ядро Оперативная память Кэш Ядро Процессор
4 4 Конфигурация кластера КемГУ 4 вычислительных узла и 1 управляющий по 2 процессора Intel Xeon 5410 (2.33 Ггц) в каждом узле по 4 ядра в каждом процессоре по 8 Гб памяти в каждом узле (по 1 Гб на ядро) Gigabit Ethernet 480 Гб дискового пространства операционная система Linux CentOS
5 5 Сайт поддержки пользователей кластера (icp.kemsu.ru) Данная презентация Бланк заявки на регистрацию пользователя Правила работы с вычислительным кластером КемГУ Полезные программы Учебные материалы (ссылки на литературу и интернет-ресурсы) Памятка пользователю Раздел «Университетский кластер»
6 6 Порядок предоставления доступа к кластеру КемГУ 1.Ознакомиться с правилами для пользователей вычислительного кластера Кемеровского государственного университета 2.Заполнить бланк заявки и отнести на подпись проректору по ИТО КемГУ 3. Получить логин и пароль учетной записи у Власенко Андрея (2134 каб.) или Андреева Никиты (2129 каб.)
7 7 Программирование для кластерной вычислительной системы При запуске обычных последовательных программ на вычислительном кластере невозможно получить выигрыш в производительности. Вывод: требуется инструментарий для распараллеливания задачи на несколько процессоров. MPI (Message Passing Interface) – стандарт де-факто при программировании вычислительных кластеров. (Афанасьев К.Е., Стуколов С.В. «Многопроцессорные вычислительные системы и параллельное программирование») MPI сложен в освоении и требует изрядных навыков прикладного программирования.
8 8 MPI на кластере КемГУ Существует единственный стандарт MPI: report.pdf И множество реализаций стандарта (MPI Chameleon, Open MPI, MVAPICH, Intel MPI, HP MPI, Microsoft MPI и др.), которые содержат библиотеки функций и набор утилит и скриптов. На кластере КемГУ: MPICH Open MPI MPI LAM 7.1.4
9 9 Программирование для кластерной вычислительной системы OpenMP – стандарт де-факто при программировании многопроцессорных (многоядерных) систем с общей памятью. С его помощью можно загрузить 8 ядер на одном узле UPC (Unified Parallel C) – подходит для программирования как систем с общей, так и с распределенной памятью. 1.Tarek El-Ghazawi, William Carlson, Thomas Sterling, Katherine Yelick: «UPC: Distributed Shared Memory Programming»
10 10 Вход на кластер Необходимо осуществить ssh-соединение (Secure Shell). Для этого требуется ssh-клиент. Один из самых популярных и удобных клиентов – Putty
11 11 Ввод IP-адреса или master.kemsu.ru
12 12 Выбор кодировки Translation UTF-8
13 13 Ввод логина Вместо vlas свой логин Ввод пароля При вводе пароль не отображается
14 14 Командная строка Приглашение командной строки в ОС Linux. Материалы по ОС Linux:
15 15 Смена пароля passwd
16 16 Файловый менеджер Midnight Commander Вызов файлового менеджера Midnight Commander (mc)
17 17 Копирование файлов на кластер / с кластера Используем программу WinSCP
18 18 Копирование файлов на кластер / с кластера или master.kemsu.ru
19 19 Копирование файлов на кластер / с кластера Скопировать папку programs_for_study в домашнюю директорию.
20 20 Переименование/перемещениефайлов Переименование/перемещение файлов 1.В Midnight commander нажать комбинацию Ctrl+O 2.mv pbsjob1_vlas pbsjob1_stud{i} 3.Кнопку «вверх» - появится предыдущая набранная строка 4.mv pbsjob2_vlas pbsjob2_stud{i} 5.Кнопку «вверх» - появится предыдущая набранная строка 6.mv pbsjob3_vlas pbsjob3_stud{i} 7.Кнопку «вверх» - появится предыдущая набранная строка 8.mv pbsjob4_vlas pbsjob4_stud{i} 9.ls – выводит содержимое каталога 10.Ctrl + O – возврат в mc
21 21 Написание исходного кода программы touch program.cpp – создает файл с названием program.cpp
22 22 Написание исходного кода программы Щелчком по кнопке F4 на имени файла program.cpp открываем его в режиме редактирования и набираем текст программы.
23 23 Выбор MPI-реализации Для этого необходимо воспользоваться утилитой switcher. switcher mpi --list switcher mpi --show
24 24 Выбор MPI-реализации switcher mpi –add-attr default mpich-ch_p4-gcc switcher mpi --show
25 25 Компиляция mpi-программы на C mpiСС c_mpi_prog.cpp –o c_mpi_prog.out
26 26 Компиляция mpi-программы на fortran mpif77 fortran_mpi_prog.f –o fortran_mpi_prog.out
27 27 Создание скрипта запуска для программы на C pbsjob1_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q #PBS -N vlasjob1 #PBS -o /home/vlas/programs_for_study/out_vlasjob1.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob1.txt #!/bin/sh mpirun –np 4 -machinefile $PBS_NODEFILE /home/vlas/programs_for_study /fortran_mpi_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор mpirun– команда запуска MPI-приложения
28 28 Постановка задачи в очередь qsub pbsjob1_vlas Отслеживание состояния задачи в очереди qstat Job id Name User Time Use S Queue 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
29 29 Файлы с результатами работы Файл результатов (поток stdout): /home/vlas/programs_for_study/out_vlasjob1.txt Файл с ошибками (поток stderr): /home/vlas/programs_for_study/err_vlasjob1.txt
30 30 Создание скрипта запуска для программы на Fortran pbsjob2_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=1 #PBS -q #PBS -N vlasjob2 #PBS -o /home/vlas/programs_for_study/out_vlasjob2.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob2.txt #!/bin/sh mpirun –np 4 -machinefile $PBS_NODEFILE /home/vlas/programs_for_study / fortran _mpi_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор mpirun– команда запуска параллельного приложения
31 31 Постановка задачи в очередь qsub pbsjob2_vlas Отслеживание состояния задачи в очереди qstat
32 32 Компиляция openmp-программы на C g++ -fopenmp c_openmp_prog.cpp –o c_openmp_prog.out
33 33 Создание скрипта запуска для openmp- программы pbsjob3_vlas #PBS -l walltime=00:01:00,nodes= 1 :ppn= 8 #PBS -q #PBS -N vlasjob3 #PBS -o /home/vlas/programs_for_study/out_vlasjob3.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob3.txt #!/bin/sh export OMP_NUM_THREADS=8 /home/vlas/programs_for_study/c_openmp_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор OMP_NUM_THREADS– команда запуска параллельного приложения
34 34 Постановка задачи в очередь qsub pbsjob3_vlas Отслеживание состояния задачи в очереди qstat
35 35 Компиляция openmp-программы на Fortran gfortran -fopenmp fortran_openmp_prog.f –o fortran_openmp_prog.out
36 36 Создание скрипта запуска для openmp- программы pbsjob4_vlas #PBS -l walltime=00:01:00,nodes= 1 :ppn= 8 #PBS -q #PBS -N vlasjob4 #PBS -o /home/vlas/programs_for_study/out_vlasjob4.txt #PBS -e /home/vlas/programs_for_study/out_vlasjob4.txt #!/bin/sh export OMP_NUM_THREADS=8 /home/vlas/programs_for_study /fortran _openmp_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/tester/out – указание пути для записи файла потока вывода #PBS -o /home/tester/err – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор OMP_NUM_THREADS– команда запуска параллельного приложения
37 37 Компиляция UPC программы upcc -network=udp -pthreads=8 upc_prog.c -o upc_prog.out
38 38 Создание скрипта запуска для UPC программы pbsjob5_vlas #PBS -l walltime=00:01:00,nodes=4:ppn=8 #PBS -q #PBS -N vlasjob5 #PBS -o /home/vlas/programs_for_study/out_vlasjob5.txt #PBS -e /home/vlas/programs_for_study/err_vlasjob5.txt #!/bin/sh /opt/bupc-runtime /bin/upcrun -n 32 /home/vlas/programs_for_study/upc_prog.out где walltime – предполагаемое время выполнения, nodes - число вычислительных узлов, ppn – число вычислительных ядер на каждом узле. #PBS -q - Имя сервера и очереди #PBS -N job_name - имя задания #PBS -o /home/…/out_vlasjob5.txt – указание пути для записи файла потока вывода #PBS -o /home/…/err_vlasjob5.txt – указание пути для записи файла потока ошибок #!/bin/sh – командный интерпретатор
39 39 Задание Забрать файлы результатов out_stud{i}job.txt посредством программы winscp на локальный компьютер.
40 40 БЛАГОДАРЮ ЗА ВНИМАНИЕ!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.