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

Parallelism structure

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   July 30, 2014, 09:46
Default Parallelism structure
  #1
New Member
 
Join Date: Jul 2014
Posts: 9
Rep Power: 3
jacobH is on a distinguished road
Hi,

I was wondering whether someone could help me out a bit in terms of explaining how the parallel computation in SU2 is structured. As far as I can see what you currently do is to split up the program into multiple subproblems (how? just by choosing a subset of the dataset? Are there any dependency issues that needs to be taken into account?) and then running a full SU2_CFD application on the individual subsets and then in the end stitching together a solution.

Are there any dependencies between while running the application on different cores, or are these computations completely independent?

Another question, when each of the iterations of the application run, these iterations are directly dependent on each other, and each of the iterations does work on the full input data correct? So by splitting up the input data into smaller chunks each iteration needs to do less work. I assume there are no way of removing dependencies between each iteration?

Are there any specific test cases that are especially good for running in parallel ? The ones I've tired have seen no speed-up running it in parallel (actually all of the ones I tired was slower).

I am looking to investigate whether it would be feasible to attempt to create a GPU version. However I am struggling a little with figuring out how to best achieve good performance.

Note: I am not very knowledgeable in CFD, but looking for good use-cases for GPU computations.

Thanks for any help
jacobH is offline   Reply With Quote

Old   July 30, 2014, 15:06
Default
  #2
Member
 
Payam D.
Join Date: Aug 2011
Posts: 81
Blog Entries: 3
Rep Power: 6
pdp.aero is on a distinguished road
Hi Jacob,

I can't answer you question about structure of parallel implemented for the code and the dependencies. It's better to be answered by its developers. However, about the last question, I already determined a speedup for the compressible external flow over ONERA m6 wing using the Euler equations and its provided native grid in the tutorial. Please see my results in the following picture. I used my core-i5 laptop albeit, not a computational server. Meanwhile, I have 2 physical cores.

ONERAM6_speedup.jpg

Hope it helps you for finding an appropriate test case.

Bests,
PDP
pdp.aero is offline   Reply With Quote

Old   July 31, 2014, 05:27
Default
  #3
New Member
 
Join Date: Jul 2014
Posts: 9
Rep Power: 3
jacobH is on a distinguished road
Hi PDP,

Thanks for your answer, much appreciated.

Well for me the TestCases/euler/onearm6 executes in serial: ~90secs but with two cores it is slightly slower ~100 secs. (although full execution including the python script is: 1m43.838s for 1 core and 1m56.726s for two cores)

Using the full 8 threads of my i7-2600 makes it even more slow.

Interestingly when I do configure it claims that I have no MPI support, so maybe something goes wrong in the compilation process? I do have MPI installed though, and mpirun, mpicc, mpic++ etc runs just fine. It does use two full cores and definitely shows output for two running programs, but maybe something have gone wrong?

Code:
Source code location: /home/jacob/SU2
    Install location:       /usr/local
    Version:              3.2.0
    Compiler:             g++
    Preprocessor flags:   
    Compiler flags:       -g -O2
    Linker flags:         
    CGNS support:         no
    MPI support:          no
    Metis support:        yes
    TecIO support:        yes
    Mutation++ support:   no
    Jsoncpp support:       no
Although as documented I do have MPI installed, and the python scripts run correctly (which I assume is not possible without having MPI installed)

Code:
$ type mpirun
mpirun is /usr/bin/mpirun
$ type mpic++
mpic++ is /usr/bin/mpic++
$ type mpicc
mpicc is /usr/bin/mpicc
How does everyone elses ./configure look like? Does it correctly detect MPI and does it use the mpi compilers instead of the standard GNU ones?

Edit: Ah, it helps configuring with --with-MPI=mpic++ ! Now using 8 cores runs in ~40sec compared to ~90sec on 1 core

Last edited by jacobH; July 31, 2014 at 06:52.
jacobH is offline   Reply With Quote

Old   July 31, 2014, 08:23
Default
  #4
Member
 
Payam D.
Join Date: Aug 2011
Posts: 81
Blog Entries: 3
Rep Power: 6
pdp.aero is on a distinguished road
I am happy that you figured out the issue. Also, you might have look here, at the end I wrote the configuration flags with details for several versions.

http://www.cfd-online.com/Forums/blo...-part-1-3.html

Good Luck,
pdp.aero is offline   Reply With Quote

Reply

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[ICEM] Meshing Foam Structure machebus ANSYS Meshing & Geometry 0 July 16, 2014 04:41
Two way fluid structure interaction of flexible plate sreemvlk ANSYS 6 April 30, 2014 04:34
New OpenFOAM Forum Structure jola OpenFOAM 2 October 19, 2011 06:55
New ANSYS forum structure, what do you think? Peter FLUENT 10 February 6, 2009 05:07
New ANSYS forum structure, what do you think? Peter CFX 5 February 4, 2009 12:59


All times are GMT -4. The time now is 18:52.