Hi,
I'm trying to get the latest Pelegant work under cygwin with quad core desktop. The problem I have now is that I always run into problem with
MPI_File_sync failed: Other I/O error , error stack:
ADIOI_GEN_FLUSH(23): Other I/O error Permission denied
I tried to build Pelegant with DSDDS_MPI_IO=0, but could not manage to get latest Pelegant (23.1.2) built.
Just wonder if some one could help me out off this problem.
Regards,
Wanming Liu
Problem with Pelegant in cygwin
Moderators: cyao, michael_borland
Re: Problem with Pelegant in cygwin
Wanming,
DSDDS_MPI_IO=0 will not work for Pelegant. I remember you reported a working version of Pelegant was built on your Windows systems. I wonder what has been changed since then.
Yusong
DSDDS_MPI_IO=0 will not work for Pelegant. I remember you reported a working version of Pelegant was built on your Windows systems. I wonder what has been changed since then.
Yusong
Re: Problem with Pelegant in cygwin
We also have pre-compiled binary version of Pelegant built with MPICH2 for Windows . It is distributed with elegant binary file together. You can download it to see if it works for you.
Yusong
Yusong
Re: Problem with Pelegant in cygwin
Yusong,
Thanks for your replies.
For the one I made it working, it is version 21.0 and I built it with DSDDS_MPI_IO=0.
I'll try the Windows version later.
Thanks,
Wanming
Thanks for your replies.
For the one I made it working, it is version 21.0 and I built it with DSDDS_MPI_IO=0.
I'll try the Windows version later.
Thanks,
Wanming
Re: Problem with Pelegant in cygwin
21.0 is pretty old. Just make sure you built with SDDS.2.8 for Pelegant 23.1.2. In the SDDSlib directory, you need
make clean
make MPI=1
Yusong
make clean
make MPI=1
Yusong
Re: Problem with Pelegant in cygwin
Yusong,
I made a change to SDDSmpi_output.c to make the latest Pelegant working under cygwin.
I changed the following line in function SDDS_MPI_File_Open from
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 1);
into
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 0);
Now Pelegant only report MPI_File_sync failed but continues to finish the simulation. The results and performance are almost identical to the old version for both serial and parallel versions. But I don't know if this is going to cause any corruption in the output file under some special situations.
Thanks,
Wanming
I made a change to SDDSmpi_output.c to make the latest Pelegant working under cygwin.
I changed the following line in function SDDS_MPI_File_Open from
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 1);
into
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 0);
Now Pelegant only report MPI_File_sync failed but continues to finish the simulation. The results and performance are almost identical to the old version for both serial and parallel versions. But I don't know if this is going to cause any corruption in the output file under some special situations.
Thanks,
Wanming
Re: Problem with Pelegant in cygwin
Wanming,
Thanks for your reporting your experience with Pelegant. As most of our tests were done on Linux, some issues for a particular environment might not be discovered.
I tested several examples under elegantExamples/parallel with the binary Pelegant downloaded from APS and ran it under cygwin on a Windows XP computer. I didn't experience the same problem you had even I added .out as output.
You can comment out the MPI_File_sync part of the code
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 1);
as MPI_File_close will flush the buffer to the disk eventually. The only side affect I can think is you might not get immediate update from your output file until the file is closed at the end.
Yusong
Thanks for your reporting your experience with Pelegant. As most of our tests were done on Linux, some issues for a particular environment might not be discovered.
I tested several examples under elegantExamples/parallel with the binary Pelegant downloaded from APS and ran it under cygwin on a Windows XP computer. I didn't experience the same problem you had even I added .out as output.
You can comment out the MPI_File_sync part of the code
if( MPI_SUCCESS != (mpi_code=MPI_File_sync(MPI_dataset->MPI_file)))
SDDS_MPI_GOTO_ERROR(stderr,"MPI_File_sync failed", mpi_code, 1);
as MPI_File_close will flush the buffer to the disk eventually. The only side affect I can think is you might not get immediate update from your output file until the file is closed at the end.
Yusong