2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 OpenMPI для Windows
Сообщение22.07.2014, 09:53 
Аватара пользователя


12/03/11
693
Существует ли OpenMPI для Windows?
Нашел официальный сайт: https://www.open-mpi.org/
Но там что-то все для Unix'а...

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение22.07.2014, 11:40 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Есть только версия 1.6.5, дальше это дело забросили.
Цитата:
Due to lack of interest and anyone to maintain them, binary support for a Microsoft Windows Open MPI build has been discontinued. There will be no further releases of them unless a new maintainer can be found. Windows-based Open MPI users may choose to use the Cygwin-based Open MPI builds, instead.

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение22.07.2014, 11:46 
Аватара пользователя


12/03/11
693
Спасибо! :-(

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение22.07.2014, 13:18 
Заслуженный участник


09/05/12
25179
DLL в сообщении #889397 писал(а):
Существует ли OpenMPI для Windows?
Существовала. Перестали развивать ввиду бессмысленности и отсутствия спроса.

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение23.07.2014, 12:35 
Аватара пользователя


12/03/11
693
Решил вначале попробовать на персональном компьютере (4 ядра) библиотеку OpenMP.
Нашел прямо в Intel Visual Studio - пример (для OpenMP), который ищет простые числа от 1 до N перебором.
Запустил. По диспетчеру задач - во время работы программы - используются все 4 ядра и загрузка ЦП 100%. Время счета ~ 1 минуты.
Но вот незадача. Если убрать параллелизм и оставить только сам алгоритм перебора, то судя по диспетчеру задач занято только одно ядро. Загрузка ЦП ~ 25%, но время счета не изменяется (!!!) и опять порядка ~ 1 минуты.

В чем может быть дело? :facepalm:

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение23.07.2014, 15:05 
Заслуженный участник


28/04/09
1933
DLL в сообщении #889623 писал(а):
В чем может быть дело? :facepalm:
Причин может быть множество, самых разнообразных.
Приведите код.

 Профиль  
                  
 
 Re: OpenMPI для Windows
Сообщение23.07.2014, 15:49 
Аватара пользователя


12/03/11
693
Код:
program ompPrime

#ifdef _OPENMP
   include 'omp_lib.h'  !needed for OMP_GET_NUM_THREADS()
#endif

integer :: start = 1
integer :: end = 100000000
integer :: number_of_primes = 0
integer :: number_of_41primes = 0
integer :: number_of_43primes = 0
integer index, factor, limit, nthr
double precision st, fin
real rindex, rlimit
logical prime, print_primes

CALL CPU_TIME(st)

print_primes = .false.
nthr = 1 ! assume just one thread
print *, ' Range to check for Primes:',start,end

#ifdef _OPENMP
!$omp parallel
!$omp single
   nthr = OMP_GET_NUM_THREADS()
   print *, ' We are using',nthr,' thread(s)'
!$omp end single!
!$omp do private(factor, limit, prime) &
   SCHEDULE(dynamic,10) &
   reduction(+:number_of_primes,number_of_41primes,number_of_43primes)
#else
   print *, ' We are using',nthr,' thread(s)'
#endif

do index = start, end, 2   !workshared loop

   limit = int(sqrt(real(index)))
   prime = .true.  ! assume number is prime
   factor = 3

   do
      if(prime .and. factor .le. limit) then
         if(mod(index,factor) .eq. 0) then
            prime = .false.
         endif
         factor = factor + 2
      else
         exit  ! we can jump out of non-workshared loop
      endif
   enddo

   if(prime) then
      if(print_primes) then
         print *, index, ' is prime'
      endif

      number_of_primes = number_of_primes + 1

      if(mod(index,4) .eq. 1) then
         number_of_41primes = number_of_41primes + 1
      endif

      if(mod(index,4) .eq. 3) then
         number_of_43primes = number_of_43primes + 1
      endif

   endif   ! if(prime)
enddo
!$omp end do
!$omp end parallel

CALL CPU_TIME(fin)
print '("Time = ",1P6E12.4," seconds.")',fin-st

print *,number_of_primes
read *,number_of_primes

end program ompPrime


 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group