Re: [mpich-discuss] Error while using MPI platform with CPP program
First, as far as I understand, the broadcast should not be between blocking send on a process and blocking recv on the others. You have to change your code if you want to keep using blocking communication. Then, by running (with the previous modifications), I have got: Fatal error in MPI_Recv: Invalid buffer pointer, error stack: MPI_Recv(187): MPI_Recv(buf=(nil), count=8, MPI_DOUBLE, src=0, tag=3, MPI_COMM_WORLD, status=0x7fffbc4e02d0) failed MPI_Recv(126): Null buffer pointer It is probably an issue on your side, such as bad index. Antoine Rougier On 05/20/2015 05:17 PM, Umesh Shisode wrote:
Hello Antoine Rougier,
Thanks for your reply. Now I have code which can broadcast vector as well as Matrix object (Attached here). But it is giving error when I tried to send and receive part of matrix object it is giving me error. Thanks again for your time. Please help me out. As it is not giving me correct answer. I am waiting for your reply. Sorry for your inconvenience.
I have attached here new code. It compiles when I want to broadcast. But giving error for send and receive. I also attached error in png file.
Regards,
Umesh Sharad Shisode, M.Tech in Modeling and Simulation(2013-15), Centre for Modeling and Simulation, University of Pune.
On Wed, May 20, 2015 at 4:07 PM, Antoine Rougier <[email protected]> wrote:
Hello,
I think your issue comes from b.vect=NULL (according to the used constructor) which is not a checked value in T Vector<T>::get(int i). By the way Ncol is no initialized before using it in MPI_Bcast.
best regards,
Antoine Rougier
On 05/20/2015 11:55 AM, Umesh Shisode wrote:
Hello Junchao,
I initialize vector b, but even then it is not working for broadcasting. It gives same error. As the vector class is user defined and also I use dynamic memory allocation. This may be the reason for failing. If you know about it then please tell. I am here attaching the zip file which contains only the vector class and main file as well as error I am facing. Please have a look at it. Thanks for your time. I am waiting for your reply.
Regards,
Umesh Sharad Shisode, M.Tech in Modeling and Simulation(2013-15), Centre for Modeling and Simulation, University of Pune.
On Tue, May 19, 2015 at 10:57 PM, Junchao Zhang <[email protected]> wrote:
Your code "MPI_Bcast(&b(0), b.get_row(), MPI_DOUBLE, 1, MPI_COMM_WORLD)" is OK. You can find manual of MPI_Bcast at http://mpi.deino.net/mpi_functions/MPI_Bcast.html Don't forget to initialize the vector b, in other words, allocate memory for it, on ALL ranks.
--Junchao Zhang
On Tue, May 19, 2015 at 9:27 AM, Umesh Shisode <[email protected]> wrote:
Hi Junchao,
I sort out the problem for MPI_Send() and MPI_Recv(), as I requested in last mail. Now I have one more difficulty which is how can I broadcast class object using MPI_Bcast() function. In my case, class is Vector (you can check it at vect_fun.h header file). I want to broadcast it to all processes. I have used dynamic memory allocation in the code. Please help me to solved the issue. I am waiting for your reply. Thanks.
Regards,
Umesh Sharad Shisode, M.Tech in Modeling and Simulation(2013-15), Centre for Modeling and Simulation, University of Pune.
On Tue, May 19, 2015 at 7:51 AM, Umesh Shisode <[email protected]> wrote:
Sorry Junchao,
Thanks for your reply. But my problem is with MPICH only. My question is how to send part of class object (in my case matrix object) from one process to another process using MPI_Send and receive using MPI_Recv functions. I tried a lot of way but couldn't do it. I hope you will help me. Thanks in advance. I have write a function to get the pointer address for first parameter of MPI_Send() function. Waiting for your reply.
Regards,
Umesh Sharad Shisode, M.Tech in Modeling and Simulation(2013-15), Centre for Modeling and Simulation, University of Pune.
On Mon, May 18, 2015 at 7:31 PM, Junchao Zhang <[email protected]> wrote:
Could not reproduce it with the latest MPICH. If the problem is not specific to MPICH, you'd better move your question to other forums like stackoverflow.
$mpirun -n 2 ./test Matrix A :
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Vector b before broadcast: 1.000000, 2.000000, 3.000000, 4.000000 Matrix A column : 4 after sending: lLim = 2 uLim = 4 for rank : 1 count = 8
Matrix A column : 0for rank = 1 after receive: lLim = 2 uLim = 4 for rank : 1 Ncol after broadcasting = 4
--Junchao Zhang
On Mon, May 18, 2015 at 6:33 AM, Umesh Shisode <[email protected]> wrote:
Hello Sir / Madam,
This is Umesh Sharad Shisode, pursuing Masters in Modeling and Simulation, at Centre for Modeling and Simulation, Pune University. I am in the final stage of my course. My Masters Thesis title is :
Development of Conjugate Gradient solver in OpenFOAM / CPP using MPI
I am now doing MPI part of my project and facing some problems with MPI functions syntax. I am trying to use CPP class object with MPI functions but it is giving some error. Which I don't understand.
Operating system : LINUX Programming Language : CPP
Commands I am using are :
> mpic++ main.cpp -o result > mpirun -np 2 result
Please help me to sort out this issue . I am attaching herewith zip file containing the code which I want to parallelize with the png file containing error. Waiting for your reply. Thanks in advance.
Regards,
Umesh Sharad Shisode, M.Tech in Modeling and Simulation(2013-15), Centre for Modeling and Simulation, University of Pune.
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
Antoine Rougier