GCC 4.6 introduced support for quad precision using the __float128 type. Since __float128 is not part of the MPI standard, PETSc defines new real and complex MPI_Datatypes for __float128 and we define our own MPI_SUM, MPI_MAX, etc. This works fine for "normal" reductions, but it's a problem with MPI_Accumulate() because the standard does not allow user-defined reduce operations.<div>
<br></div><div>Is there any way to work around this limitation other than to not use MPI_Accumulate() in any context that might some day be asked to work with __float128?</div>