I tried re-compiling some things after updating to openmpi 4.0.5 and am getting
some unexpected failures from mpifort and mpicc:
$ mpifort -O3
testmpi.f90/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld:
cannot find
-lhwloc/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld:
cannot find
-levent_core/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld:
cannot find
-levent_pthreads/usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld:
cannot find -lzcollect2: error: ld returned 1 exit status
Denny@DESKTOP-BEBCMC4 ~/MPI_tests$
I have some working executables from October 26, so I assume there is a problem
or something else that I need to update. An example causing the above problem
follows. Running Cygwin on an Intel i9-9900K. Thanks for your help.
Example:
program
testmpi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MPI tests for Raspberry Pi cluster.!! - Hello World! - Broadcast and reduce!
- Pass along real array! -!
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!implicit
noneinclude 'mpif.h'integer:: myproc, numproc, ierr, len,
istatus(mpi_status_size)character(mpi_max_processor_name):: hostnameinteger::
nreal*4:: y, z, x(1024)!! Hello world.!call mpi_init(ierr)call
mpi_comm_rank(mpi_comm_world, myproc, ierr)call mpi_comm_size(mpi_comm_world,
numproc, ierr)call mpi_get_processor_name(hostname, len,
ierr)write(6,'(i5,a19,a6)') myproc, ': Hello world from ', hostnamecall
mpi_barrier(mpi_comm_world,ierr)!! Broadcast and reduce.!y = 0.0z =
0.0if(myproc.eq.0) y = 1.0call mpi_bcast(y, 1, mpi_real, 0, mpi_comm_world,
ierr)call mpi_reduce(y, z, 1, mpi_real, mpi_sum, 0, mpi_comm_world, &
ierr)if(myproc.eq.0) write(6,*) numproc, ' should be ', zcall
mpi_barrier(mpi_comm_world,ierr)!! Up the chain and back to the
start.!if(myproc==0) then do n=1, 1024 x(n) = float(n) enddoelse do
n=1, 1024 x(n) = -float(n) enddo call mpi_recv(x, 1024, mpi_real,
myproc-1, mpi_any_tag, & mpi_comm_world, istatus, ierr)
endifif(myproc<numproc-1) call mpi_send(x, 1024, mpi_real, &
myproc+1, 1, mpi_comm_world, ierr)if(myproc==numproc-1) call mpi_send(x,
1024, mpi_real, & 0, 1, mpi_comm_world,
ierr)x(1:1024) = 0.0if(myproc==0) then call mpi_recv(x, 1024, mpi_real,
numproc-1, mpi_any_tag, & mpi_comm_world,
istatus, ierr) write(6,'(f8.2,a11,f8.2)') x(1024), ' should be ', float(1024)
endifcall mpi_barrier(mpi_comm_world,ierr)!! Finished.!call
mpi_finalize(ierr)stopend
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple