When using PETSc in single precision mode (–with-precision=single when running config/configure.py) are the operations done in single or double precision?
PETSc does NOT do any explicit conversion of single precision to double before performing computations; this it depends on the hardware and compiler what happens. For example, the compiler could choose to put the single precision numbers into the usual double precision registers and then use the usual double precision floating point unit. Or it could use SSE2 instructions that work directly on the single precision numbers. It is a bit of a mystery what decisions get made sometimes. There may be compiler flags in some circumstances that can affect this.
Related Questions
- When using PETSc in single precision mode (--with-precision=single when running config/configure.py) are the operations done in single or double precision?
- When using PETSc in single precision mode (--with-precision=single when running ./configure) are the operations done in single or double precision?
- When the library is operating in LUN mode, why is it not detected by hosts running Linux or Netware ?