Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

Why does compiling the Fortran 90 bindings take soooo long?

0
Posted

Why does compiling the Fortran 90 bindings take soooo long?

0

This is actually a design problem with the MPI F90 bindings themselves. The issue is that since F90 is a strongly typed language, we have to overload each function that takes a choice buffer with a typed buffer. For example, MPI_SEND has many different overloaded versions — one for each type of the user buffer. Specifically, there is an MPI_SEND that has the following types for the first argument: • logical*1, logical*2, logical*4, logical*8, logical*16 (if supported) • integer*1, integer*2, integer*4, integer*8, integer*16 (if supported) • real*4, real*8, real*16 (if supported) • complex*8, complex*16, complex*32 (if supported) • character On the surface, this is 17 bindings for MPI_SEND. Multiply this by every MPI function that takes a choice buffer (50) and you 850 overloaded functions. However, the problem gets worse — for each type, we also have to overload for each array dimension that needs to be supported. Fortran allows up to 7 dimensional arrays, so this becomes (17×7) = 11

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123