Содержание
- 2. Перемножение void mult_matrices(double **a, double **b, double **c, int n) { int i, j, k; double
- 3. Варианты циклов первый цикл по i, второй по j, третий по k - кратко назовем ijk
- 4. Результаты.
- 5. Оптимизация
- 6. Разворачивание циклов int i, j, k; int i1,i2; double tmp,tmp1,tmp2; double temp; double *p,*ci,*ci1,*ci2; for(i=0, i1=1,
- 7. Результаты.
- 8. Разворачивание циклов int i,j,k; double *q,*b1,*b2,*b3,*b4,*b5,*b6,*b7,*b8,*b9,*b10; double a1,a2,a3,a4,a5,a6,a7,a8,a9,a10; for(k = 0; k b1=&b[k][0]; b2=&b[k+1][0]; b3=&b[k+2][0]; b4=&b[k+3][0];
- 9. Результат
- 10. dgemm Си extern void dgemm_(char *tra, char *trb, int *m, int *n, int *k, double *alpha,
- 11. transA='T'; transB='T'; alpha=1.0; zero=0.0; // mult_matrices(a, b, c,n); dgemm_(&transA,&transB,&n,&n,&n,&alpha,a,&n,b,&n,&zero,c,&n);
- 12. Компиляция cc -g -o matmul matmuldot.o -lm -lgoto -lpthread -lgfortran Makefile PROG=matmul TESTOBJ=matmuldot.o CFLAGS=-g CLFLAGS=-g LIBS=-lm
- 13. Классификация Флина.
- 14. Openmp
- 15. Включает/отключает режим, в котором количество создаваемых нитей при входе в параллельную область может меняться динамически. Начальное
- 16. #include #include int n; #pragma omp threadprivate(n) int main(int argc, char *argv[]) { int num; n=1;
- 17. Вложенные регионы int main(){ #pragma omp parallel // параллельный регион 1 { #pragma omp parallel {
- 18. Вложенные регионы
- 20. Архитектура Fermi
- 21. Системы с разделенной памятью MPP- системы(Массово-параллельная архитектура)
- 22. Системы с массовым параллелизмом (МРР)
- 23. Особенности MPP. Достоинство Хорошая масштабируемость. Недостатки Сложности межпроцессорного взаимодействия Разработка программ.
- 24. Кластера Кластеры высокой доступности Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения
- 25. Кластеры повышенной производительности Обозначаются англ. аббревиатурой HPC (High performance cluster). Позволяют увеличить скорость расчетов, разбивая задание
- 26. Вычислительные ресурсы ЮГИНФО LINUX-кластер (10 узлов, 2003 г., CPU P4 2.4 Ггц, память 512 Мб )
- 32. Софт INTEL 11.0 icc icpc ifort GCC gcc g++ gfortran MPI
- 33. Системы управления заданиями PBS (Portable Batch System) – система управления ресурсами и загрузкой кластеров. Может работать
- 34. PBS. Оригинальный opensource проект OpenPBS разработанный в 1998 году MRJ.(на данный момент не поддерживается) TORQUE (
- 35. Архитектура PBS. Сервер (pbs_server) который является центром PBS, именно сервер принимает задания от пользователей, удаляет задания,
- 36. PBS наиболее часто используемые команды qsub – команда для запуска задачи qstat – для просмотра состояния
- 37. qsub qsub [options] PBS_script #!/bin/sh #PBS -l walltime=1:00:00 #PBS -l nodes=2:LINUX cd $PBS_O_WORKDIR mpirun -np 2
- 38. опции команды qsub q - название очереди пакетной обработки -l - набор технических параметров, набираемых через
- 39. Команда qstat
- 40. Описание вывода qstat Job id - уникальный идентификатор задачи Name - имя исполняемой задачи User -
- 41. команда pestat
- 42. qdel qdel - удаление задания qdel 36807
- 43. Распараллеливания программ SPMD (Single Program Multiple Date) - на всех процессорах выполняются копии одной программы, обрабатывающие
- 44. Методологический подхода(Фостера) к решению задачи на многопроцессорной системе разбиение задачи на минимальные независимые подзадачи (partitioning); установление
- 45. Общая схема распараллеливания if (proc_id == 0) { task1(); } if (proc_id == 1) { task2();
- 46. Общая организация MPI Коммуникационная библиотека MPI стала общепризнанным стандартом в параллельном программировании для систем с распределенной
- 47. Общая организация MPI (продолжение) Для идентификации наборов процессов вводится понятие группы, объединяющей все или какую-то часть
- 48. Структура MPI Около 130 функций - функции инициализации и закрытия MPI процессов; - функции, реализующие коммуникационные
- 49. Характеристики функций Локальная функция – выполняется внутри вызывающего процесса. Ее завершение не требует коммуникаций. Нелокальная функция
- 50. Особенности MPI в Си Все процедуры являются функциями, и большинство из них возвращает код ошибки. При
- 51. Соответствие между MPI-типами и типами языка C
- 52. Особенности MPI в Фортране большинство MPI процедур являются подпрограммами (вызываются с помощью оператора CALL), код ошибки
- 53. Соответствие между MPI-типами и типам языка FORTRAN Тип MPI Тип языка FORTRAN MPI_INTEGER INTEGER MPI_REAL REAL
- 54. Базовые функции MPI Функция инициализации MPI_Init C/C++: int MPI_Init(int *argc, char ***argv) Fortran: MPI_INIT(IERROR) INTEGER IERROR
- 55. Базовые функции MPI Функция завершения MPI программ MPI_Finalize. C/C++: int MPI_Finalize(void) Fortran: MPI_FINALIZE(IERROR) INTEGER IERROR
- 56. Базовые функции MPI Функция определения числа процессов в области связи MPI_Comm_size. C/C++: int MPI_Comm_size(MPI_Comm comm, int
- 57. Базовые функции MPI . Функция определения номера процесса MPI_Comm_rank C/C++: int MPI_Comm_rank(MPI_Comm comm, int *rank) Fortran:
- 58. Базовые функции MPI Функция передачи сообщения MPI_Send. C/C++: int MPI_Send(void* buf, int count, MPI_Datatype datatype, int
- 59. Базовые функции MPI Функция приема сообщения MPI_Recv. C/C++: int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int
- 60. Базовые функции MPI Функция отсчета времени (таймер) MPI_Wtime. C/C++: double MPI_Wtime(void) Fortran: DOUBLE PRECISION MPI_WTIME() Функция
- 62. Скачать презентацию