HPCx homepage
Services User support Projects Research About us Sitemap Search  
  line          
Helpdesk User Guide Notices Bulletin Documentation
Training Porting Filestore Batch Interactive FAQ
               
home > support > FAQ > 32bitvs64bit
spacer
hr
spacer

64-bit Computing on HPCx

spacer
What is 64-bit computing, and what are its advantages ?

What is 64-bit computing, and what are its advantages ?

64-bit computing can refer to many things in the computing environment. In particular, there is often confusion between the separate concepts of default size settings of 64 bits for INTEGER and REAL datatypes on CRAY platforms, and the 64-bit computing environment, which applies to HPCx. For optimal performance, it is recommended that HPCx users invoke 64-bit computing mode. This is achieved by compiling and linking their programs with the -q64 flag set (see User Guide). The default computing mode remains 32-bit.

What is the 64-bit Computing Environment ?

The 64-bit computing environment on HPCx consists of two key elements : the 64-bit hardware (p690+ processor) and the provided software (AIX) that supports 64-bit computing. There are no widely agreed standards as to the definition of a 64-bit CPU, however IBM consider a processor 64-bit if:

  1. The general purpose registers are 64-bits wide
  2. Integer math and logical operations act on all 64 bits at a time
  3. Virtual addressing requires 64-bit pointers.
Further details of these properties can be found here.

What are the Advantages of Using the 64-bit Computing Environment ?

The main advantages of using 64-bit Computing on HPCx are:

  1. The size of data structures ( or memory) that can be addressed in 64-bit mode is vastly greater than in 32-bit mode. [1]*
  2. Using the -q64 option will speed up 64-bit integer operations. The impact of this will depend upon your application code, where the key benefit will normally be in performing arithmetic operations on pointers in 64-bit programs.

N.B. As stated above, invoking 64-bit compute mode does NOT result in the size of default Fortran data types being set at 64 bits, as for example, on the Cray T3E.** The size of some C & C++ data types are changed in 64-bit mode. See tables below for more details.

For a discussion of more implications of 64-bit computing, and a fuller description of IBM's 64-bit technology please click here

Summary of IBM 32-bit computing vs IBM 64-bit computing

Summary of Differences
32-bit Environment64-bit Environment
4 GB address space1 million TB address space
32-bit execution mode64-bit execution mode
Data model ILP32 (32-bit pointer) Data model LP64 (64-bit pointer)
XCOFF binary executableXCOFF64 binary executable
32-bit shared libraries64-bit shared libraries



Data Type Sizes in 32-bit vs 64-bit Computing Environment

Fortran Data Type Sizes
Data TypeILP32LP64
integer16unchanged
integer(2)16unchanged
integer(4)32unchanged
integer(8)64unchanged
real32unchanged
real(4)32unchanged
real(8)64unchanged
real(16)128unchanged
double64unchanged
logical32unchanged
logical(2)16unchanged
logical(4)32unchanged
logical(8)64unchanged
C and C++ Data Type Sizes
Data TypeILP32LP64
char8unchanged
short16unchanged
int32unchanged
long3264
long long64unchanged
pointer3264
enum32unchanged
float32unchanged
double64unchanged
long double64unchanged

* By using the -bmaxdata -bmaxstack flags for both compiling and linking your code on HPCx you can access all the available memory on HPCx in 32-bit mode.) See the link below for more details. http://hpcf.nersc.gov/software/ibm/sp_memory.html

** If desired, this can be achieved by use of the -qautodbl or -qrealsize compiler options. Please see the man pages or click here for more details.