#pragma warning restore 649 /// <summary> /// ~ /// </summary> public void Cancel(ref MPI_Request r) { int ierr; MPI_CANCEL(ref r, out ierr); MPIException.CheckReturnCode(ierr); }
#pragma warning restore 649 /// <summary> /// Gets the Status of a Request, which is only meaningful, if request is freed. /// Probably that's not the case, when this method is invoked. /// <paramref name="isSetted"/> indicates completed request. /// </summary> /// <param name="request">input</param> /// <param name="isSetted">states if status is available</param> /// <param name="status">output</param> public void MPI_GetStatusOfRequest(MPI_Request request, out bool isSetted, out MPI_Status status) { int ierr, flag; MPI_REQUEST_GET_STATUS(ref request, out flag, out status, out ierr); isSetted = flag != 0; MPIException.CheckReturnCode(ierr); }
#pragma warning restore 649 /// <summary> /// /// </summary> public void Issend(IntPtr buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, out MPI_Request request) { int ierr; MPI_ISSEND(buf, ref count, ref datatype, ref dest, ref tag, ref comm, out request, out ierr); MPIException.CheckReturnCode(ierr); }
#pragma warning restore 649 /// <summary> /// /// </summary> public void Irecv(IntPtr buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, out MPI_Request request) { int ierr; MPI_IRECV(buf, ref count, ref datatype, ref source, ref tag, ref comm, out request, out ierr); MPIException.CheckReturnCode(ierr); }
private void LoadSymb(string name, ref MPI_Request sym) { string errstr; IntPtr addr = Utils.DynamicLibraries.LoadSymbol(m_conv.LibHandle, name, out errstr); if (addr == IntPtr.Zero) { throw new ApplicationException("OpenMPI error: unable to load symbol '" + name + "' from library '" + m_conv.CurrentLibraryName + "', Error string: >" + errstr + "<;"); } //Console.WriteLine("val of '" + name + "' is: " + addr); sym.m1 = m_conv.MPI_Request_c2f(addr); }