Recently I've been running an MPI code that uses the LAPACK slamch routine to determine machine precision parameters. This software is compiled using the latest Intel Fortran compiler and setting the -fpe0 argument to watch for certain floating point errors. The slamch routines crashed and printed an OpenMPI stacktrace to report an underflow error, however the Intel -fpe0 setting doesn't abort on underflow. When this software is not compiled and linked with OpenMPI, it ignores the underflow and doesn't abort when compiled with -fpe0.

When I run the MPI version and set --mca opal_signal 6,7,11 the code doesn't abort on underflow. I'd like to know if I'm interpreting this behavior correctly, it appears that the mpi versus no mpi cases handle underflow differently. I'm assuming OpenMPI has a handler that processes the interrupts ahead of the Fortran RTL, stopping execution. Otherwise the Fortran RTL handler would just ignore the underflow. Do I sort of understand what is going on here? Is there another solution short of the --mca opal_signal switch?

thanks
Steve

Reply via email to