CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > SU2

MPI Communication within Linear solver

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 21, 2014, 03:59
Default MPI Communication within Linear solver
  #1
Member
 
Dominic Chandar
Join Date: Mar 2009
Location: United Kingdom
Posts: 31
Rep Power: 17
dominic is on a distinguished road
Send a message via Skype™ to dominic
Hi,

I would like to know if there are MPI communications within a BCGSTAB iteration ? Seeing through the code, I don't seem to notice that. I can see that all partitions do individual solves and then communicate.

For e.g. in solver_direct_mean.cpp
void CEulerSolver::ImplicitEuler_Iteration(), the Set_MPI_Solution is called at the end, after the solution is computed. May be your convergence would improve if the communication is placed inside the BCGSTAB routine as well ? but many increase your total communication time. - Is this why it was done this way ?

Dominic
dominic is offline   Reply With Quote

Old   March 2, 2014, 19:09
Default
  #2
Super Moderator
 
Francisco Palacios
Join Date: Jan 2013
Location: Long Beach, CA
Posts: 404
Rep Power: 15
fpalacios is on a distinguished road
Quote:
Originally Posted by dominic View Post
Hi,

I would like to know if there are MPI communications within a BCGSTAB iteration ? Seeing through the code, I don't seem to notice that. I can see that all partitions do individual solves and then communicate.

For e.g. in solver_direct_mean.cpp
void CEulerSolver::ImplicitEuler_Iteration(), the Set_MPI_Solution is called at the end, after the solution is computed. May be your convergence would improve if the communication is placed inside the BCGSTAB routine as well ? but many increase your total communication time. - Is this why it was done this way ?

Dominic
Yep, there is some communication inside de algorithm. In different parts... the most clear ones are when you call the matrix vector multiplication mat_vec(phat, v); or dot product dotProd(r_0, v).
For example the mat_vec is done in

void CSysMatrix::MatrixVectorProduct(const CSysVector & vec, CSysVector & prod, CGeometry *geometry, CConfig *config) {

Cheers,
Francisco
fpalacios is offline   Reply With Quote

Old   March 2, 2014, 23:05
Default
  #3
Member
 
Dominic Chandar
Join Date: Mar 2009
Location: United Kingdom
Posts: 31
Rep Power: 17
dominic is on a distinguished road
Send a message via Skype™ to dominic
Thank you Francisco, I missed that part ! I can see that there is a
SendReceive_Solution() inside the function you've mentioned.
dominic is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Linear Solver for Particle Methods prapanj Main CFD Forum 1 December 2, 2013 20:03
please help me which solver is better for my application Ger_US OpenFOAM 8 January 8, 2013 12:29
MPI issues with my own solver davide_c OpenFOAM Running, Solving & CFD 1 March 23, 2012 08:57
solution diverges when linear upwind interpolation scheme is used subash OpenFOAM 0 May 29, 2010 01:23
Getting too many iterations by velocity solving (aborting). Changing U - Solver? suitup OpenFOAM Running, Solving & CFD 0 January 20, 2010 07:45


All times are GMT -4. The time now is 05:12.