Навигация

Технология Hyper-Threading от Intel

Производительности всегда мало

0 1

Hyper-Threading

2 3

Углубляемся в технологию

4 5

Максимум эффективности от Hyper-Threading

6 7

Архитектура IA-64

8 9

Архитектура Е2К

10 11 12 13 14 15

Большие компьютерные системы

Виды параллельной обработки

16 17 18 19 20 21 22

Матричная обработка данных

23 24 25 26

Архитектура мультипроцессорных систем общего назначения

27 28 29

Коммуникационные сети

30 31 32 33 34 35 36 37 38 39 40 41 42 43

Организация памяти в мультипроцессорных системах

44 45 46

Программный параллелизм и общие переменные

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

Мультикомпьютерные системы

63 64 65

Общая память и передача сообщений

66 67 68 69 70 71 72 73 74

Производительность мультипроцессорных систем

75 76 77 78 79 80 81 82

Использование технологии параллельного программирования MPI-2

Введение

83 84 85

Кластерные системы и стандарт параллельного программирования MPI

86 87 88 89 90 91 92 93 94 95 96 97 98 99

Математические проблемы параллельных вычислений

100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122



      integer N

      parameter(N=10000000)

* номер процесса

      integer iam

* количество ветвей параллельной программы

      integer nprocs

* имя узла, на котором выполняется процесс

      character*18 pname

 

      integer ierr, i,nlen

      real*8 pi, h, x, res

* инициализация MPI

      call MPI_INIT(ierr)

* получаем количество ветвей параллельной программы

      call MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr)

* получаем номер процесса

      call MPI_COMM_RANK(MPI_COMM_WORLD, iam, ierr)

* получаем имя узла, на котором выполняется процесс

      call MPI_GET_PROCESSOR_NAME(pname,nlen,ierr);

 

* процесс 0 печатает размер интервала, на котором будем считать сумму

      if(iam .eq. 0) then

         write(*,*) 'N = ', N

      endif 

      write(*,*)'Process ',iam,' of ',nprocs,' started on ',pname

 

* считаем частичную сумму

      pi = 0.0

      h = 1.0/N

      do i= 1+iam , N, nprocs

         x = h*(i-0.5)

         pi = pi+(4.0/(1.0+x*x))

      enddo

      pi = h * pi

 

* процесс 0 получает результаты от ветвей и суммирует их

      call MPI_REDUCE(pi,res,1,MPI_REAL8,MPI_SUM,0,MPI_COMM_WORLD,ierr)

* процесс 0 печатает конечный результат


<< назад вперед >>