Re: [gentoo-user] Changing compilers
Quoting Matthew Finkel matthew.fin...@gmail.com: On Mon, Mar 19, 2012 at 1:26 AM, Andrew Lowe a...@wht.com.au wrote: Hi all, [snip] Any thoughts, greatly appreciated, Andrew Lowe With regard to speed, are you looking for a faster compile time or higher optimization of the compiled code such that the run time is faster? -- Matthew Finkel I'm looking for the faster code, the run time to be faster - I compile the FEA CFD code once but will be running many jobs. Andrew
Re: [gentoo-user] Changing compilers
FEA jobs can be parallelized, right? Take a hard look at CUDA and OpenCL. ZZ On Mar 19, 2012 1:29 AM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe
Re: [gentoo-user] Changing compilers
On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 5:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark Sorry. Meant to include this reference: $15 on Kindle. Reads great on Kindle for PC. http://www.amazon.com/CUDA-Example-Introduction-General-Purpose-ebook/dp/B003VYBOSE/ref=sr_1_4?ie=UTF8qid=1332160431sr=8-4
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 8:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Yes. And as a convenient side-effect, it offers a great excuse to upgrade your video card with some regularity. The performance of mid-grade and high-grade video cards continues to improve rapidly. -- :wq
Re: [gentoo-user] Changing compilers
On 03/19/12 20:34, Mark Knecht wrote: On Mon, Mar 19, 2012 at 5:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark Sorry. Meant to include this reference: $15 on Kindle. Reads great on Kindle for PC. http://www.amazon.com/CUDA-Example-Introduction-General-Purpose-ebook/dp/B003VYBOSE/ref=sr_1_4?ie=UTF8qid=1332160431sr=8-4 I'm sorry but I'm doing a PhD, not creating a career in Academia. The concept of writing an FEA or CFD from scratch, with CUDA is laughable, I just don't have the time to learn CUDA, research the field, small displacement, large displacement, dynamics, material nonlinearities, write the code, and then most importantly benchmark it to make sure it's actually correct. This is all bearing in mind that I have 20+ years experience as a C/C++ technical software developer, including FEA and CFD. I'll actually be using Code Aster, an open source FEA code that runs under Linux. Sorry if I sound narky, but compilers is the subject at hand, not how to write FEA code. Anyway, thanks for answering, Andrew
Re: [gentoo-user] Changing compilers
On 03/19/12 22:02, Michael Mol wrote: On Mon, Mar 19, 2012 at 8:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Yes. And as a convenient side-effect, it offers a great excuse to upgrade your video card with some regularity. The performance of mid-grade and high-grade video cards continues to improve rapidly. Sorry, can't do that, I'm using epic, http://tinyurl.com/83l5o3z which currently ranks at 151 in the top 500 list :) It's amazing how fast this list changes, 6 months ago, this machine was at 107 and 6 months before that 87. Andrew
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 10:05 AM, Andrew Lowe a...@wht.com.au wrote: On 03/19/12 20:34, Mark Knecht wrote: On Mon, Mar 19, 2012 at 5:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark Sorry. Meant to include this reference: $15 on Kindle. Reads great on Kindle for PC. http://www.amazon.com/CUDA-Example-Introduction-General-Purpose-ebook/dp/B003VYBOSE/ref=sr_1_4?ie=UTF8qid=1332160431sr=8-4 I'm sorry but I'm doing a PhD, not creating a career in Academia. The concept of writing an FEA or CFD from scratch, with CUDA is laughable, I just don't have the time to learn CUDA, research the field, small displacement, large displacement, dynamics, material nonlinearities, write the code, and then most importantly benchmark it to make sure it's actually correct. This is all bearing in mind that I have 20+ years experience as a C/C++ technical software developer, including FEA and CFD. I'll actually be using Code Aster, an open source FEA code that runs under Linux. Sorry if I sound narky, but compilers is the subject at hand, not how to write FEA code. If you really care about a 1-2% difference, you should not be dismissing GPGPU-accelerated code so easily! If the tools you seem to have already settled on don't support it, you should either use different tools, or correct the ones you're working with. The lead Python guy had an astute observation (which I'll generalize) the other day; for 99% of your program, it doesn't matter what programming language you use. For the 1% where you need speed, you should call out into the faster language. -- :wq
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 10:18 AM, Andrew Lowe a...@wht.com.au wrote: On 03/19/12 22:02, Michael Mol wrote: On Mon, Mar 19, 2012 at 8:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Yes. And as a convenient side-effect, it offers a great excuse to upgrade your video card with some regularity. The performance of mid-grade and high-grade video cards continues to improve rapidly. Sorry, can't do that, I'm using epic, http://tinyurl.com/83l5o3z which currently ranks at 151 in the top 500 list :) It's amazing how fast this list changes, 6 months ago, this machine was at 107 and 6 months before that 87. That does change things a bit. I don't know Epic's structure or their upgrade plans, but if you're confident it's not going to have GPGPU capabilities, then CUDA and OpenCL are less useful for you. OpenCL, at least, still handles per-CPU and per-node job dispatching, though. And that's still likely to be useful for performing on huge matrices. To answer your original question: No, I haven't done much with anything other than gcc on Gentoo. What you *should* do is grab each compiler (trial versions, if necessary) and test them to find which gives you the best results. It's my understanding PhD programs involve getting things done right, not so much quickly or easily. Best to be methodical about it. -- :wq
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 7:05 AM, Andrew Lowe a...@wht.com.au wrote: On 03/19/12 20:34, Mark Knecht wrote: On Mon, Mar 19, 2012 at 5:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark Sorry. Meant to include this reference: $15 on Kindle. Reads great on Kindle for PC. http://www.amazon.com/CUDA-Example-Introduction-General-Purpose-ebook/dp/B003VYBOSE/ref=sr_1_4?ie=UTF8qid=1332160431sr=8-4 I'm sorry but I'm doing a PhD, not creating a career in Academia. The concept of writing an FEA or CFD from scratch, with CUDA is laughable, I just don't have the time to learn CUDA, research the field, small displacement, large displacement, dynamics, material nonlinearities, write the code, and then most importantly benchmark it to make sure it's actually correct. This is all bearing in mind that I have 20+ years experience as a C/C++ technical software developer, including FEA and CFD. I'll actually be using Code Aster, an open source FEA code that runs under Linux. Sorry if I sound narky, but compilers is the subject at hand, not how to write FEA code. Anyway, thanks for answering, Andrew Nahh, be as snarky as you like as long as you don't really mean it personally. My experience with CUDA, and I'm not a programmer, is that there is a fairly steep learning curve. However changing C compilers will get you maybe 5%. Changing to CUDA will get you 30,000%, assuming a mid-high range CUDA card and that you can parallel-ize FEA. I did a little Googling and it seems that FEA is a pretty common CUDA topic so I don't think at the outset that you'd find yourself all alone. Good luck whatever you do and know that I didn't mind the response at all! :-) Cheers, Mark
Re: [gentoo-user] Changing compilers
On 03/20/12 00:03, Mark Knecht wrote: On Mon, Mar 19, 2012 at 7:05 AM, Andrew Lowe a...@wht.com.au wrote: On 03/19/12 20:34, Mark Knecht wrote: On Mon, Mar 19, 2012 at 5:32 AM, Mark Knecht markkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe Think CUDA Mark Sorry. Meant to include this reference: $15 on Kindle. Reads great on Kindle for PC. http://www.amazon.com/CUDA-Example-Introduction-General-Purpose-ebook/dp/B003VYBOSE/ref=sr_1_4?ie=UTF8qid=1332160431sr=8-4 I'm sorry but I'm doing a PhD, not creating a career in Academia. The concept of writing an FEA or CFD from scratch, with CUDA is laughable, I just don't have the time to learn CUDA, research the field, small displacement, large displacement, dynamics, material nonlinearities, write the code, and then most importantly benchmark it to make sure it's actually correct. This is all bearing in mind that I have 20+ years experience as a C/C++ technical software developer, including FEA and CFD. I'll actually be using Code Aster, an open source FEA code that runs under Linux. Sorry if I sound narky, but compilers is the subject at hand, not how to write FEA code. Anyway, thanks for answering, Andrew Nahh, be as snarky as you like as long as you don't really mean it personally. My experience with CUDA, and I'm not a programmer, is that there is a fairly steep learning curve. However changing C compilers will get you maybe 5%. Changing to CUDA will get you 30,000%, assuming a mid-high range CUDA card and that you can parallel-ize FEA. I did a little Googling and it seems that FEA is a pretty common CUDA topic so I don't think at the outset that you'd find yourself all alone. Good luck whatever you do and know that I didn't mind the response at all! :-) Cheers, Mark The thing is that I agree that CUDA is the way to go for things like FEA CFD, in fact the mob that runs the super computer I'm using is installing another one that is top heavy in CUDA cards. But the thing is as I'm using the FEA as a tool, rather than playing around with the innards of the code, I need an established code, one that has verification behind it. My topic looks at the way that steel connections behave so I need an established FEA code that is verified to provide the correct answers, I don't get that if I write my own code. Most likely I'll write a short paper covering a comparison of existing C/C++ compilers and their relative speeds, spend the next 18 months - 2 years doing my research and then to close things off, I'll probably be able to write another short paper concerning CUDA speedups as the FEA code bases will have caught up and been verified. Thanks for peoples replies, Andrew p.s. Writing this I just had a sudden horrific though and checked the FEA code I'm using, Aster. It's written mostly in FORTRAN - fat chance I'm going to be hacking that code
Re: [gentoo-user] Changing compilers
On 19/03/2012 10:18 PM, Andrew Lowe wrote: On 03/19/12 22:02, Michael Mol wrote: On Mon, Mar 19, 2012 at 8:32 AM, Mark Knechtmarkkne...@gmail.com wrote: On Sun, Mar 18, 2012 at 10:26 PM, Andrew Lowea...@wht.com.au wrote: Hi all, [snip] ... ... [snip] which currently ranks at 151 in the top 500 list :) It's amazing how fast this list changes, 6 months ago, this machine was at 107 and 6 months before that 87. Andrew Just in closing on this subject, thanks to those who responded, have a quick look at this page from the llvm/clang project: http://clang.llvm.org/diagnostics.html For my non FEA/CFD programming, I don't care if clang is 5 - 10% slower than gcc, the diagnostic output that clang produces looks to be spectacular in comparison to gcc and will be enough for me to dump gcc and shift to clang. Andrew
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 02:00:18PM +0800, Andrew Lowe wrote I'm looking for the faster code, the run time to be faster - I compile the FEA CFD code once but will be running many jobs. Andrew Since you're asking on the Gentoo list, can I safely assume you use Gentoo? Gentoo gives *MUCH MORE* than 1% or 2% improvement, *IF YOU OPTIMIZE PROPERLY*. This does not mean going into Gentoo-ricer territory, but it does mean using the features of Gentoo to their fullest. Gentoo allows you to build binaries with gcc that are tuned to *YOUR* cpu. The advantage is that it gets the maximum out of your cpu. The disadvantage is that a binary compiled for a newer cpu will probably not run on an older cpu on another machine. In your /etc/make/conf, I recommend... CFLAGS=-O2 -march=native -mfpmath=sse -fomit-frame-pointer -pipe CXXFLAGS=${CFLAGS} MAKEOPTS=-j1 The -march=native setting tells gcc to build binaries to use all the cpu's available features. The CXXFLAGS variable is specific to C++. Set it identical to CFLAGS, so that C++ code gets the same settings. The MAKEOPTS=-j1 setting slows down the build process slightly, but it does *NOT* affect the final binary. It does avoid some occasional mysterious hard-to-reproduce errors that stop builds dead in their tracks. The first time you bang your head against the wall for a couple of hours trying to figure out the problem, you'll waste more time than you've saved with a higher numbered j value. Note also that if you've done a recent fresh install, you should... * emerge system * emerge world * rebuild the kernel entirely and reboot ...in that order. The binaries from the install CD are generic i686 (32 bit) or amd64 (64 bit) with no optional machine instructions selected.. They have to be this way to install properly on 8-year-old machines. But this doesn't take advantage of the faster instructions on newer machines. The following is a true story that happened to me, not a friend-of-a-friend. I have a 4 1/2 year old Dell with an onboard Intel GPU. Right after the install, it could not keep up with 1080i video from my TV tuner box, or even teh slowest speed for NHL GameCenter Live. After emerging system+world and rebuilding, the same machine was able to view 1080i TV and run the low-bandwidth version of NHL GameCenter Live. That is a very significat difference. Note that merely optimizing the program itself isn't enough. The binary is dynamically linked to various math libraries. The program reads data from and writes output to disk. And there are always kernel calls along the way. So optimizing every math library, disk I/O code, and kernel code contributes to faster execution. -- Walter Dnes waltd...@waltdnes.org
[gentoo-user] Changing compilers
Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe
Re: [gentoo-user] Changing compilers
On Mon, Mar 19, 2012 at 1:26 AM, Andrew Lowe a...@wht.com.au wrote: Hi all, Has anyone played around with the various better known compilers on Gentoo? By better known, I'm referring to gcc, Intel, llvm, pathscale. My situation is that I've just started my PhD which requires me to do Finite Element Analysis, FEA, and Computational Fluid Dynamics, CFD, and I want to find the best compiler for the job. Before anyone says Why bother, XXX compiler is only 1 - 2% faster than gcc, in the context of the work I'm doing this 1 - 2% IS important. What I'm looking for is any feedback people may have on ability to compile the Gentoo environment, the ability to change compilers easily, gcc-config or flags in make.conf, as to whether the compiler/linker can use the libraries as compiled by gcc on a standard gentoo install and so on. Obviously there is much web trawling to be done to find what other people are saying as well. Any thoughts, greatly appreciated, Andrew Lowe With regard to speed, are you looking for a faster compile time or higher optimization of the compiled code such that the run time is faster? -- Matthew Finkel