<div dir="ltr">Hi all.<br><br>We are working on implementing a new parallel bond-constraint solver based on SHAKE. We already have a working OpenMP version with promising results. We now want to do a first MPI implementation of the solver. Due to some algorithm-inherent constraints, we can not reuse LINCS MPI implementation, in which you only send/receive the needed coordinates via dd_move_x_constraints() in both constr.cpp and lincs.cpp. As a first approach, we want to collect all the coordinates on the master rank, execute the solver, and send the updated results to the other ranks. However, every rank has mixed its local coordinates plus the communicated ones. How can we distinguish between local and communicated coordinates in x and xprime arrays? How can we know which atom corresponds to each entry of the arrays? Is there any already-implemented method to perform the send/receive all coordinates?<br><br>We also need to collect the velocities and the virial. As far as I can see, there is no send/receive of this information before/in P-LINCS. How are the velocities and the virial kept up to date in P-LINCS?<br><br>Thank you very much in advance.<br><br>Regards,<br>LoriĆ©n.<br></div>