-
Notifications
You must be signed in to change notification settings - Fork 47
Description
1: Test command: /usr/bin/mpirun "-np" "4"
"/home/matthb2/phasta-github/build/bin/phIOreadheader" "2"
1: Test timeout computed to be: 1500
1: Endian is different!
1: Building subcommunicator
1: Error readheader: Unexpected mismatch between keyphrase = number of
nodes@1? and token = boundary condition array@2
1: Freeing subcommunicator
1: number of nodes don't match... :(
1:
--------------------------------------------------------------------------
1: mpirun noticed that the job aborted, but has no info as to the process
1: that caused that situation.
1:
--------------------------------------------------------------------------
1/19 Test #1: common_readHeader ..........................***Failed
It seems like SyncIO was never tested on a 32bit system. SyncIO writes it's header as a bunch of unsigned
long, which tends to change size between systems.
It seems SyncIO is not robust to different word sizes between the system writing the SyncIO files and the system reading them. I don't suppose this is a major problem for current production HPC resources, but it may be in the future. Probably the way to fix this is to replace all the old style variable length types with things from stdint.h (unsigned long -> uint64_t, and so forth). It's going to be a bit of work though, because you're likely also going to break the F<>C interface and have to be very careful not to pass anything larger than the word size across function call boundaries (or change integer to integer(kind=something) globally).
(Thanks to Ben for finding this.)