Lecture_DVM_1 (1158298), страница 5

Файл №1158298 Lecture_DVM_1 (Электронные лекции) 5 страницаLecture_DVM_1 (1158298) страница 52019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Новый язык Fortran OpenMP/DVM (расширение Fortran OpenMP директивами DVM), реализация которого ведется в настоящее время, будет способствовать широкому внедрению DVM-подхода, поскольку параллельная программа на этом языке будет не только обладать всеми достоинствами DVM-программ, но и являться стандартной параллельной программой для мультипроцессоров и DSM-кластеров.

Однако наличие самой передовой технологии разработки параллельных программ само по себе не может решить проблему ускорения освоения параллельных вычислительных систем.

Большинство параллельных программ создаются с использованием того огромного программного задела, который был получен на последовательных ЭВМ. Необходимость разработки методики распараллеливания существующих последовательных программ ощущается очень остро. В ИПМ им.М.В.Келдыша РАН ведутся работы по обобщению опыта распараллеливания программ и созданию соответствующей методики. Такая методика должна быть поддержана специальными инструментами, автоматизирующими анализ последовательных программ и извлечение их свойств, существенных для распараллеливания этих программ. Работы В.В.Воеводина и Вл.В.Воеводина, ведущиеся в этом направлении, позволяют верить в появление таких инструментов в ближайшем будущем.

Острой является и проблема подготовки кадров, способных эффективно использовать параллельные системы. Для курсов лекций по параллельной обработке, читаемых в ВУЗах, характерен чисто теоретический уклон. В них мало внимания уделяется изучению практических технологий параллельного программирования. Как правило, такие курсы не поддержаны практическими занятиями. Первый положительный опыт по проведению практикума по параллельному программированию с выходом на реальные параллельные системы (кластер рабочих станций и многопроцессорная ЭВМ МВС-1000м), полученный в 2002 году на факультете ВМиК МГУ при поддержке фирмы Интел и Межведомственного суперкомпьютерного центра, дает основания надеяться на постепенное улучшение положения дел в этом вопросе.

Литература

  1. Foster I., Kesselman C. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, Inc., San Francisco, CA, USA, 1999.

  2. Андрианов А.Н., Ефимкин К.Н., Задыхайло И.Б. Язык Норма. Препринт ИПМ им. М.В.Келдыша АН СССР, № 165, 1985.

  3. Zadykhailo I.B., Krukov V.A. and Pozdnjakov L.A. 'RAMPA - CASE for portable parallel programs development'', Proc. of the International Conference on Parallel Computing Technologies, Obninck, Russia, 1993.

  4. Konovalov N.A., Krukov V.A., Mihailov S.N. and Pogrebtsov A.A. Fortran DVM - a Language for Portable Parallel Program Development. Proceedings of Software For Multiprocessors & Supercomputers: Theory, Practice, Experience. Institute for System Programming, RAS, Moscow, 1994.

  5. Lastovetsky A. mpC - a Multi-Paradigm Programming Language for Massively Parallel Computers, ACM SIGPLAN Notices, 31(2):13-20, February 1996.

  6. Abramov S., Adamovitch A. and Kovalenko M. T-system: programming environment providing automatic dynamic parallelizing on IP-network of Unix-computers. Report on 4-th International Russian-Indian seminar and exibition, Sept. 15-25, 1997, Moscow. http://www.botik.ru/~abram/ts-pubs.html

  7. Message-Passing Interface Forum, Document for a Standard Message-Passing Interface, 1993. Version 1.0. http://www.unix.mcs.anl.gov/mpi/

  8. Message-Passing Interface Forum, MPI-2: Extensions to the Message-Passing Interface, 1997. http://www.unix.mcs.anl.gov/mpi/

  9. High Performance Fortran Forum. High Performance Fortran Language Specification. Version 1.0, May 1993.

  10. High Performance Fortran Forum. High Performance Fortran Language Specification. Version 2.0, January 1997.

  11. OpenMP Consortium: OpenMP Fortran Application Program Interface, Version 1.0, October 1997. http://www.openmp.org/

  12. DVM-система. http://www.keldysh.ru/dvm/

  13. Bailey D., Harris T., Saphir W., Van der Wijngaart, Woo A., Yarrow M.The NAS Parallel Benchmarks 2.0. NAS Technical Report NAS-95-020, NASA Ames Research Center, Moffett Field, CA, 1995. http://science.nas.nasa.gov/Software/NPB.

  14. PCF Fortran. Version 3.1. Aug.1, 1990.

  15. Hiranandani S., Kennedy K., Tseng C. Compiling Fortran D for MIMD Distributed-Memory Machines. Comm. ACM, Vol. 35,No. 8 (Aug. 1992), 66-80.

  16. Коновалов Н.А., Крюков В.А., Любимский Э.З. Управляемая виртуальная память.Программирование, №1, 1977.

  17. TotalView. http://www.etnus.com/Products/TotalView/index.html

  18. Portland Group Debugger. http://www.pgroup.com

  19. Nupshot . http://www.mcs.anl.gov/mpi/mpich/

  20. Pablo. http://www-pablo.cs.uiuc.edu

  21. Vampir. http://www.pallas.de/pages/vampir.htm

  22. Backus J. The history of FORTRAN I, II and III. ACM SIGPLAN Notices, 13(8):165-180,1978.

  23. Frumkin M., Jin H., and Yan J. Implementation of NAS Parallel Benchmarks in High Performance Fortran. NAS Technical Report NAS-98-009, NASA Ames Research Center, Moffett Field, CA, 1998.

  24. Capello F., Etiemble D. MPI versus MPI+OpenMP on the IBM SP for the NAS Benchmarks. In Proceedings of Supercomputing ’2000, 2000.

  25. Елизаров Г.С., Забродин А.В., Левин В.К., Каратанов В.В., Корнеев В.В., Савин Г.И., Шабанов Б.М. Структура многопроцессорной вычислительной системы МВС-1000М. Труды Всероссийской научной конференции "Высокопроизводительные вычисления и их приложения", г.Черноголовка, 30 октября - 2 ноября 2000 г., Изд-во Московского университета, 2000.

  26. Dongarra J., Walker D., and others. ScaLAPACK Users’ Guide. Philadelphia: Society for Industrial and Applied Mathematics, 1997.

Приложение 1.

Примеры последовательной и параллельных реализаций алгоритма Якоби

Последовательная программа на языке Fortran 77

PROGRAM JAC_F77

PARAMETER (L=8, ITMAX=20)

REAL A(L,L), B(L,L)

PRINT *, '********** TEST_JACOBI **********'

DO IT = 1, ITMAX

DO J = 2, L-1

DO I = 2, L-1

A(I,J) = B(I,J)

ENDDO

ENDDO

DO J = 2, L-1

DO I = 2, L-1

B(I,J) = (A(I-1,J) + A(I,J-1) + A(I+1,J) + A(I,J+1)) /4

ENDDO

ENDDO

ENDDO

END

Параллельная программа на языке Fortran 77 + MPI

PROGRAM JAC_MPI

include 'mpif.h'

integer me, nprocs

PARAMETER (L=8, ITMAX=20, LC=2, LR=2)

REAL A(0:L/LR+1,0:L/LC+1), B(L/LR,L/LC)

C arrays A and B with block distribution

integer dim(2), coords(2)

logical isper(2)

integer status(MPI_STATUS_SIZE,4), req(8), newcomm

integer srow,lrow,nrow,scol,lcol,ncol

integer pup,pdown,pleft,pright

dim(1) = LR

dim(2) = LC

isper(1) = .false.

isper(2) = .false.

reor = .true.

call MPI_Init( ierr )

call MPI_Comm_rank( mpi_comm_world, me, ierr )

call MPI_Comm_size( mpi_comm_world, nprocs, ierr)

call MPI_Cart_create(mpi_comm_world,2,dim,isper,

* .true., newcomm, ierr)

call MPI_Cart_shift(newcomm,0,1,pup,pdown, ierr)

call MPI_Cart_shift(newcomm,1,1,pleft,pright, ierr)

call MPI_Comm_rank (newcomm, me, ierr)

call MPI_Cart_coords(newcomm,me,2,coords, ierr)

C rows of matrix I have to process

srow = (coords(1) * L) / dim(1)

lrow = (((coords(1) + 1) * L) / dim(1))-1

nrow = lrow - srow + 1

C colomns of matrix I have to process

scol = (coords(2) * L) / dim(2)

lcol = (((coords(2) + 1) * L) / dim(2))-1

ncol = lcol - scol + 1

call MPI_Type_vector(ncol,1,nrow+2,MPI_DOUBLE_PRECISION,

* vectype, ierr)

call MPI_Type_commit(vectype, ierr)

IF (me .eq. 0) PRINT *, '***** TEST_JACOBI *******'

DO IT = 1, ITMAX

DO J = 1, ncol

DO I = 1, nrow

A(I,J) = B(I,J)

ENDDO

ENDDO

C Copying shadow elements of array A from

C neighboring processors before loop execution

call MPI_Irecv(A(1,0),nrow,MPI_DOUBLE_PRECISION,

* pleft, 1235, MPI_COMM_WORLD, req(1), ierr)

call MPI_Isend(A(1,ncol),nrow,MPI_DOUBLE_PRECISION,

* pright, 1235, MPI_COMM_WORLD,req(2), ierr)

call MPI_Irecv(A(1,ncol+1),nrow,MPI_DOUBLE_PRECISION,

* pright, 1236, MPI_COMM_WORLD, req(3), ierr)

call MPI_Isend(A(1,1),nrow,MPI_DOUBLE_PRECISION,

* pleft, 1236, MPI_COMM_WORLD,req(4), ierr)

call MPI_Irecv(A(0,1),1,vectype,

* pup, 1237, MPI_COMM_WORLD, req(5), ierr)

call MPI_Isend(A(nrow,1),1,vectype,

* pdown, 1237, MPI_COMM_WORLD,req(6), ierr)

call MPI_Irecv(A(nrow+1,1),1,vectype,

* pdown, 1238, MPI_COMM_WORLD, req(7), ierr)

call MPI_Isend(A(1,1),1,vectype,

* pup, 1238, MPI_COMM_WORLD,req(8), ierr)

call MPI_Waitall(8,req,status, ierr)

DO J = 2, ncol-1

DO I = 2, nrow-1

B(I,J) = (A(I-1,J) + A(I,J-1) +

* A(I+1,J) + A(I,J+1)) / 4

ENDDO

ENDDO

ENDDO

call MPI_Finalize(ierr)

END

Параллельная программа на языке HPF

PROGRAM JAC_HPF

PARAMETER (L=8, ITMAX=20)

REAL A(L,L), B(L,L)

!HPF$ PROCESSORS P(3,3)

!HPF$ DISTRIBUTE ( BLOCK, BLOCK) :: A

!HPF$ ALIGN B(I,J) WITH A(I,J)

C arrays A and B with block distribution

PRINT *, '********** TEST_JACOBI **********'

DO IT = 1, ITMAX

!HPF$ INDEPENDENT

DO J = 2, L-1

!HPF$ INDEPENDENT

DO I = 2, L-1

A(I, J) = B(I, J)

ENDDO

ENDDO

!HPF$ INDEPENDENT

DO J = 2, L-1

!HPF$ INDEPENDENT

DO I = 2, L-1

B(I, J) = (A(I-1, J) + A(I, J-1) +

* A(I+1, J) + A(I, J+1)) / 4

ENDDO

ENDDO

ENDDO

END

Параллельная программа на языке Fortran DVM

PROGRAM JAC_DVM

PARAMETER (L=8, ITMAX=20)

REAL A(L,L), B(L,L)

CDVM$ DISTRIBUTE ( BLOCK, BLOCK) :: A

CDVM$ ALIGN B(I,J) WITH A(I,J)

C arrays A and B with block distribution

PRINT *, '********** TEST_JACOBI **********'

DO IT = 1, ITMAX

CDVM$ PARALLEL (J, I) ON A(I, J)

DO J = 2, L-1

DO I = 2, L-1

A(I,J) = B(I,J)

ENDDO

ENDDO

CDVM$ PARALLEL (J, I) ON B(I, J), SHADOW_RENEW (A)

C Copying shadow elements of array A from

C neighboring processors before loop execution

DO J = 2, L-1

DO I = 2, L-1

B(I,J) = (A(I-1,J) + A(I,J-1) +

* A(I+1,J) + A(I,J+1)) / 4

ENDDO

ENDDO

ENDDO

END

Характеристики

Тип файла
Документ
Размер
448,5 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее