Hello, my name is Ryan Johnson.  I&#39;ve been working closely with my colleague Roland Schulz on making various performance optimizations on GROMACS as described in the previous mail:<br><a href="http://lists.gromacs.org/pipermail/gmx-developers/2010-September/004711.html" target="_blank">http://lists.gromacs.org/pipermail/gmx-developers/2010-September/004711.html</a><br>

<br>We have added MPI-IO to allow parallel writing of XTC.  However we are having an issue when it comes to gmx_ftell/fseek for checkpoints.  We have two possible solutions to the problem and want to ask which one is better.<br>

<br>One of our ideas is to add wrapper functions around gmx_ftell/fseek called gmx_fio_tell/seek and have the wrapper function call either the MPI function (if compiled with MPI and the file is opened with MPI) or use gmx_ftell/seek. We could either change all places to use the wrapper (than we would have to change a lot of files including libxdrf.c and add dependencies on gmx_fio) or only those which are involved with writing XTC files.<br>

<br>The other solution is to use GMX_FILE instead of FILE everywhere in futil, and set GMX_FILE to MPI_FILE if compiled with MPI and set it to FILE if compiled without MPI. Then we would open all files with MPI (in general still in serial - thus not changing the behavior just using the MPI-IO functions) and all the futil function would use stdio/MPI-IO depending on whether GROMACS is compiled with MPI or not.<br>

<br><br>