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

PathScale EKOPath 4 Compiler Suite is free and open source

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 14, 2011, 01:50
Default PathScale EKOPath 4 Compiler Suite is free and open source
  #1
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
PathScale EKOPath 4 Compiler Suite has been released as an open source project for Linux, FreeBSD and Solaris. Here the official announcement:

http://www.pathscale.com/ekopath4-op...e-announcement

The download link is a bit hidden here: http://www.pathscale.com/ekopath-compiler-suite and it is

http://c591116.r16.cf2.rackcdn.com/e...-installer.run

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.

Last edited by alberto; June 14, 2011 at 02:02. Reason: Added download links
alberto is offline   Reply With Quote

Old   June 14, 2011, 05:06
Default
  #2
Senior Member
 
Olivier
Join Date: Jun 2009
Location: France, grenoble
Posts: 272
Rep Power: 17
olivierG is on a distinguished road
hello,
Does someone have already setup environement (i.e bashrc and settings.sh) in order to use this pathscale compiler with OpenFOAM ?

NB: actual files seems GCC centric.

PS: trying to keep "Gcc" but changing
export WM_CC='/opt/ekopath-4.0.10/bin/pathcc'
export WM_CXX='/opt/ekopath-4.0.10/bin/pathCC'

does not work. thirdParty (from scotch) gives error thus either the rest.
edit: in fact, error are from mpicc

Regards,
olivier

Last edited by olivierG; June 14, 2011 at 07:00.
olivierG is offline   Reply With Quote

Old   June 14, 2011, 10:04
Default
  #3
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by olivierG View Post
hello,
Does someone have already setup environement (i.e bashrc and settings.sh) in order to use this pathscale compiler with OpenFOAM ?
I doubt: the compiler was open-sourced yesterday ;-)
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 14, 2011, 11:42
Default
  #4
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings to all!

@Olivier:
Quote:
Originally Posted by olivierG View Post
PS: trying to keep "Gcc" but changing
export WM_CC='/opt/ekopath-4.0.10/bin/pathcc'
export WM_CXX='/opt/ekopath-4.0.10/bin/pathCC'

does not work. thirdParty (from scotch) gives error thus either the rest.
edit: in fact, error are from mpicc
You can't change from olive oil to cooking oil and expect things to taste the same or even better, without doing dome additional tweaks to the recipe!!

I haven't tested this myself, but here's a short list of the files you will need to take a look at:
  • OpenFOAM-1.x.x/etc/bashrc <- change WM_CC and WM_CCX, as well as the WM_COMPILER option, from gcc to pathcc.
  • OpenFOAM-1.x.x/etc/settings.sh <- choose "openfoam" compiler, instead of system, and add the specs for pathcc (folders and versions). Follow the structure from the Gcc branch
  • OpenFOAM-1.x.x/wmake/rules <- you will have to add a new folder for pathcc. For example linuxPathCC and/or linux64PathCC.
    Copy it from one of the Gcc ones. Keep a lookout for hard-coded gcc and g++ references; for example, files "rules/linuxGcc/c" and "rules/linuxGcc/c++" have them hard coded! Likewise in "rules/linuxGcc/general".
  • ThirdParty-1.x.x/scotch_5.1/src/Makefile.inc <- Also has various hard coded references!
There might be one or two more, but I can't remember which and where.

Keep in mind that probably you will have to change the rules in the folder "rules/linuxPathCC", in order to comply with pathcc's options And I quote:
Quote:
Originally Posted by http://www.pathscale.com/docs/pathCC.html
In addition to the options described here, the pathcc/CC compiler supports the following GNU CC options (as described on the GCC man page or at http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/):
Some things have changed since gcc 3.3.1 to 4.4.x and 4.5.x...


@Alberto: Shouldn't the OpenFOAM code need some massive restructuring for taking full advantage of PathCC? Or at the very least, adding OpenMP to the Pstream library?

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   June 14, 2011, 11:56
Default
  #5
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by wyldckat View Post
@Alberto: Shouldn't the OpenFOAM code need some massive restructuring for taking full advantage of PathCC? Or at the very least, adding OpenMP to the Pstream library?
Not a compiler expert here (I reported the news because the release of PathScale under GPL means a huge step ahead, since Linux finally has a full-featured HPC compiler), but I guess it depends on what you want to achieve.

If you mean re-writing parts of the code so that parallelisation is done with OpenMP, then yes, you need a lot of restructuring. If you choose to rely on the automatic features of the compiler for that (it seems PathScale strong point is exactly this) , then you only need "minor" changes: rewriting the compilation rules, tuning the options, and eventually patch those parts of the code that do not build.

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 14, 2011, 19:00
Default
  #6
Senior Member
 
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23
l_r_mcglashan will become famous soon enough
Just tried this on our cluster on an in-house C/C++ code base (lots of monte carlo in it) with the same optimisation flags (-O2/-O3) as Gcc and it's twice as slow. Bit disappointed initially but will have a look again sometime later this week.
__________________
Laurence R. McGlashan :: Website
l_r_mcglashan is offline   Reply With Quote

Old   June 14, 2011, 22:55
Default
  #7
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by l_r_mcglashan View Post
Just tried this on our cluster on an in-house C/C++ code base (lots of monte carlo in it) with the same optimisation flags (-O2/-O3) as Gcc and it's twice as slow. Bit disappointed initially but will have a look again sometime later this week.
Looks a bit strange. However, if you do not find the reason, tell them (Freenode - #pathscale channel). Their motto is "if it's not faster than gcc, then it's a bug"
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 15, 2011, 15:34
Default
  #8
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings to all!

Quote:
Originally Posted by l_r_mcglashan View Post
Just tried this on our cluster on an in-house C/C++ code base (lots of monte carlo in it) with the same optimisation flags (-O2/-O3) as Gcc and it's twice as slow. Bit disappointed initially but will have a look again sometime later this week.
I'm curious about this... keep us posted if possible
But I'll remind you that gcc 3.{3,4}.x was waaaay slower that gcc 4.{3,4,5}.x! And according to their docs I posted before, their "arguments" reference for gcc was still "gcc 3.3.1", sooo...

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   June 15, 2011, 17:54
Default
  #9
Senior Member
 
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23
l_r_mcglashan will become famous soon enough
Good old benchmarks!

Yes, I have timings for gcc3.4 for my apps and the simulations are generally around 10% slower than with gcc4.6. pathCC is, like, TWICE as slow with the same flags (even had a look at a few of the extra ones, but no luck).

Anyway, better stop procrastinating. If anyone gets decent results using this then it would be nice to know.
__________________
Laurence R. McGlashan :: Website
l_r_mcglashan is offline   Reply With Quote

Old   June 15, 2011, 18:34
Default
  #10
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
This sounds a interesting, given that on benchmarks the performance improvement of PathScale is quite large compared to gcc 4.5.2 (there is a test with Poisson solvers):

http://www.phoronix.com/scan.php?pag...th4_open&num=3

http://www.phoronix.com/scan.php?pag...th4_open&num=4

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 16, 2011, 05:33
Default
  #11
Senior Member
 
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23
l_r_mcglashan will become famous soon enough
Well I just tried Himeno bench 98 source code and got this (am I being fair?):

Code:
gcc (GCC) 4.6.0 20110530 (Red Hat 4.6.0-9)
gcc -c -O3 -DLARGE himenoBMT.c
gcc -O3 himenoBMT.o -o bmt
./bmt

mimax = 513 mjmax = 257 mkmax = 257
imax = 512 jmax = 256 kmax =256
cpu : 46.553092 sec.
Loop executed for 100 times
Gosa : 4.882812e-04 
MFLOPS measured : 2403.078704
Score based on MMX Pentium 200MHz : 74.467887
Code:
PathScale (tm) Compiler Suite: Version 4.0.10
GNU gcc version  (PathScale 4.0.10 driver)

pathcc-4.0.10 -c -O3 -DLARGE himenoBMT.c
pathcc-4.0.10 -O3 himenoBMT.o -o bmt
./bmt

mimax = 513 mjmax = 257 mkmax = 257
imax = 512 jmax = 256 kmax =256
cpu : 66.520140 sec.
Loop executed for 100 times
Gosa : 4.882812e-04 
MFLOPS measured : 1681.757495
Score based on MMX Pentium 200MHz : 52.115200
__________________
Laurence R. McGlashan :: Website
l_r_mcglashan is offline   Reply With Quote

Old   June 20, 2011, 14:22
Default
  #12
Senior Member
 
Laurence R. McGlashan
Join Date: Mar 2009
Posts: 370
Rep Power: 23
l_r_mcglashan will become famous soon enough
Small update: The above case will run just as fast with the pathcc compiler if you use the -LNOrefetch=0 flag.

So I wouldn't trust any benchmarks, especially if they're not at least compared with the GCC4.6 compiler with -O3 turned on.
__________________
Laurence R. McGlashan :: Website
l_r_mcglashan is offline   Reply With Quote

Old   June 20, 2011, 15:17
Default
  #13
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by l_r_mcglashan View Post
Small update: The above case will run just as fast with the pathcc compiler if you use the -LNOrefetch=0 flag.

So I wouldn't trust any benchmarks, especially if they're not at least compared with the GCC4.6 compiler with -O3 turned on.
Did you use SSE specific flags with pathscale?

Could you report the case to PathScale guys? I showed them this thread, and they asked to open a bug report so that they can examine the case, but I do not know the details of what you did.

About benchmarks, they are really case- and hardware-specific. Also, there is another factor: what compiler was used to build the compiler and libraries?

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 26, 2011, 18:48
Default
  #14
Senior Member
 
linnemann's Avatar
 
Niels Nielsen
Join Date: Mar 2009
Location: NJ - Denmark
Posts: 555
Rep Power: 27
linnemann will become famous soon enough
I also tested this against the std 4.4.x version in SL6.0 and pathCC is WAY slower than gcc in the std icoFoam readme tutorial.
__________________
Linnemann

PS. I do not do personal support, so please post in the forums.
linnemann is offline   Reply With Quote

Old   June 26, 2011, 20:33
Default
  #15
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Yes, I did not have good results either in comparison to a standard build with gcc 4.5.1 on openSUSE 11.4. I'll try to file a bug report, since that's what they suggested to do.

@Niels: Our of curiosity, what options did you use?

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   June 26, 2011, 20:54
Default
  #16
Senior Member
 
linnemann's Avatar
 
Niels Nielsen
Join Date: Mar 2009
Location: NJ - Denmark
Posts: 555
Rep Power: 27
linnemann will become famous soon enough
Basically just the gcc ones without one option, cant remember which one but pathCC complained about it and just removed it from the c++ rules of wmake.
__________________
Linnemann

PS. I do not do personal support, so please post in the forums.
linnemann 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
Open Source DEM with LIGGGHTS: Release / classes chrisk Main CFD Forum 1 October 31, 2022 15:41
CFX11 + Fortran compiler ? Mohan CFX 20 March 30, 2011 18:56
The CERFACS' PALM coupler is now open source (LGPL 3.0) Florent Main CFD Forum 0 January 30, 2011 14:59
Dual Boot Windows and Linux and Go Open Source andyj Main CFD Forum 2 October 21, 2010 16:49
Elmer a Free, Open Source Multiphysics Programme Ahmed Main CFD Forum 0 September 19, 2009 19:30


All times are GMT -4. The time now is 10:23.