- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Greetings,
I'm trying to compile some old code that could really make use of the new multi-processor computer in the office. However, if I use the flages "-fast -parallel -mtune=pentium4", the program terminates prematurely without error. If I compile with no special flags, the program runs as it does on the 32-bit Windows machine compiled using Lahey v5.7. However, there is no performance increase.
So I'm trying to find out why the program is exiting early when using the optimizing flags. But, if I use the debug flag '-g', no auto-parallelization is done. Is there a way to debug programs that use the auto-parallelization? Thank you for your time.
Also, please make answers as simplistic as possible, I'm new to this. Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wow,
Thank you for such a timely response.
Just so I understand this, the order in which the flags are set will allow me to use the debugging options with the optimization, i.e. -g before any of the others?
Also, what are a OpenMP directives? Just a basic answer will do to give me a direction to look for documentation, thanks.
I will try the -C flag, as there is a lot of implicit types in this code. It's modified MODFLOW if anyone has had any experience with it.
Thanks again for all the help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It should make no difference where you put -g in the list of options.
www.openmp.org has good introductory tutorials, and you should find material in the docs directory of your compiler installation. The companion threading forum is a good place for questions. Auto-parallelization done by the compiler is like automatic OpenMP; with the OpenMP directives, you specify which loops are parallelized, which variables are private (to the thread), whether you want a schedule other than default (guided is good for triangular loops). The compiler is fairly conservative about auto-parallel; in case it doesn't recognize parallel opportunities in your code, OpenMP allows you more hands-on control, and the opportunity to find by trial and error which parallelizations are valid.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
tim18,
Sorry for the delay, but I wanted to thank for your help and the additional information you provided. It has been very helpful.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page