PGI User Forum
 SearchSearch   MemberlistMemberlist     RegisterRegister   ProfileProfile    Log inLog in 

CUDA-x86.

old 32 bit code won't run after compiling on 64 bit?

 
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling
View previous topic :: View next topic  
Author Message
EBD



Joined: 12 Dec 2005
Posts: 7

PostPosted: Thu Feb 23, 2006 3:33 pm    Post subject: old 32 bit code won't run after compiling on 64 bit? Reply with quote

Hello,

I have an older 32 bit program (not mine code) that runs really slow on my 32 bit single processor machine. So, naturally I wanted to see how fast it would be on my new 64 bit, dual processor. So, I compiled, with no options and with -Mconcur.

I did get the following error, but the .out was created.
PGF90-W-0129-Floating point overflow.

when I run the program launches, and I am asked for an input file. Then it crashes with a 'Fortran Stop' error.

I take it going from 32 to 64 may not be as simple as just recomiling?

Buddy
Back to top
View user's profile
mkcolg



Joined: 30 Jun 2004
Posts: 6134
Location: The Portland Group Inc.

PostPosted: Fri Feb 24, 2006 10:31 am    Post subject: Reply with quote

Hi Buddy,

When you have a Fortran only program, moving to 64-bits should be straight forward. First, are you sure your program is crashing or is it just exiting? A 'Fortran Stop' message just means that you program exited at a 'stop' statement.

The Floating point overflow warning is a bit of a concern. This means that your using a constant real number that is too big for use in a specific context. For example, if your assigning a number bigger than 2Gb to a variable declared REAL*4. Since constants have the default kind of 4, it can even happen if you use a very large constant without changing its kind (i.e. append with an '_8'). Have you modified your program to use larger constants or are you compiling with "-r8"? The warning should print the line number, can you post this line?

What I'd do, is take a step back and compile your program in 64-bits with "-g". If it still stops after you enter the input file, run again using pgdbg (the PGI debugger), and step through the code to better understand why it's stopping. Once it works at "-g", begin adding optimizations. Start with "-fastsse" and then compile with "-fastsse -Mconcur", "-fastsse -Mconcur=innermost", and "-fastsse -Mconcur=noaltcode". Be sure to note the run times of each of the 4 flag sets to determine which option is best for your code.

Hope this helps,
Mat
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    PGI User Forum Forum Index -> Programming and Compiling All times are GMT - 7 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group