DATA Step, Macro, Functions and more

running proc compare testing 32bit OS versus 64bit OS

Accepted Solution Solved
Reply
Contributor
Posts: 73
Accepted Solution

running proc compare testing 32bit OS versus 64bit OS

We are converting from a 32 bit SAS 9.2 on windows server 2008 to 9.3 on 64 bit windows server 2008 R2

When I do a proc compare of the datasets on the older server and the datasets on the new server I get differences out to E-16 but I see no differences in the numbers.

This happens on percentages calculated in the code not in the source data pulled from a data warehouse.  When I examine the data I see no difference and even when I merge the two datasets and difference the values I get zero.

What is going on?


Accepted Solutions
Solution
‎06-20-2013 01:10 PM
Contributor
Posts: 73

Re: running proc compare testing 32bit OS versus 64bit OS

I got the following from SAS

There are subtle differences that in numeric precision when it comes to 64 bit memory.  64 bit memory tends to be a bit more precise than 32 bit.  That being said, when it comes to numeric precision at the thirteenth, fourteenth, etc. digits, you cannot always be assured what value will be returned.  The inconsistency you are experiencing is simply the nature of numeric precision when dealing with numbers this large.

for now I'm running with a CRITERION=.00000000000001

View solution in original post


All Replies
Super User
Posts: 11,343

Re: running proc compare testing 32bit OS versus 64bit OS

Posted in reply to wkossack_nspirehealth_com

Most likely your seeing the results precision in storage differences due to different operating systems and internal data storage.

Generally when running proc compare I use the option FUZZ= so that it only reports differences large enough to matter in the values, often something in the E-8 range but that would depend on your data.

Solution
‎06-20-2013 01:10 PM
Contributor
Posts: 73

Re: running proc compare testing 32bit OS versus 64bit OS

I got the following from SAS

There are subtle differences that in numeric precision when it comes to 64 bit memory.  64 bit memory tends to be a bit more precise than 32 bit.  That being said, when it comes to numeric precision at the thirteenth, fourteenth, etc. digits, you cannot always be assured what value will be returned.  The inconsistency you are experiencing is simply the nature of numeric precision when dealing with numbers this large.

for now I'm running with a CRITERION=.00000000000001

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 168 views
  • 0 likes
  • 2 in conversation