Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change the IBM Fortran and C wrappers on Summit #2724

Merged

Conversation

minxu74
Copy link
Contributor

@minxu74 minxu74 commented Feb 5, 2019

Change the IBM Fortran and C wrappers from the Fortran 77 to
Fortran 90 functionality and change their MPI wrappers to the
common names (i.e. mpif90, mpicc, and mpicxx).

Change the IBM Fortran and C wrappers from the Fortran 77 to
Fortran 90 functionality and change their MPI wrappers to the
common names (i.e. mpif90, mpicc, and mpicxx)
@sarats
Copy link
Member

sarats commented Feb 5, 2019

Regarding the generic mpixx wrappers, are they guaranteed to be set properly for the right compiler family? I recall there were issues last year. Anyway if that's recommended by OLCF now, we should switch.

@minxu74
Copy link
Contributor Author

minxu74 commented Feb 6, 2019

Hi @sarats Yes, the MPI wrappers are recommended in the user guides of Summit. Based on the same link, the xlf_r mainly includes F77 functionality and I changed it to xlf90_r. This change removed the errors reported in the issues #2687 and #2713

@sarats
Copy link
Member

sarats commented Feb 6, 2019

@minxu74 Thanks for the clarification. I'm okay with Fortran compiler change but thought it might be preferable to be explicit about the Fortran variant through a flag.
-qlanglvl=90std/2003std etc.

Btw, if one were to use the MPI wrappers, this is what they invoke. Both mpif90 and mpifort are same.
So we should use xlf2008_r to keep it consistent?

[sarat@login5 ~ ]$ mpif90 -showme
/sw/summit/xl/16.1.1-1/xlf/16.1.1/bin/xlf2008_r -I/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/include -qthreaded -I/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/lib/XL -L/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/lib -lmpiprofilesupport -lmpi_ibm_usempi -lmpi_ibm_mpifh -lmpi_ibm
[sarat@login5 ~ ]$ mpifort -showme
/sw/summit/xl/16.1.1-1/xlf/16.1.1/bin/xlf2008_r -I/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/include -qthreaded -I/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/lib/XL -L/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/lib -lmpiprofilesupport -lmpi_ibm_usempi -lmpi_ibm_mpifh -lmpi_ibm

@minxu74
Copy link
Contributor Author

minxu74 commented Feb 6, 2019

@sarats I do not know. The results of mpif77 --showme and mpif90 --showme and mpifort --showme are exactly same. But if you look at the wrappers by vim, they do choose the compilers based on the name of the wrapper.

@sarats
Copy link
Member

sarats commented Feb 7, 2019

Hmm...I'm confused as well. All of them ultimately link to script below.

I looked inside the script and it doesn't seem to distinguish between the Fortran variants in change_flags_xlf ()

/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-1/spectrum-mpi-10.2.0.10-20181214-y75ruim4h6cvqcdymmcnb6mllodtyfuz/bin/mpifort -> opal_wrapper

@minxu74
Copy link
Contributor Author

minxu74 commented Feb 8, 2019

@sarat in the mpif90 script:

    elif [ $1 = 'mpif90' ] ; then
        complist="gfortran:ifort:ifc:pgfortran:pgf90:pathf90"
        if [ $ppc -eq 1 ] ; then
            complist="xlf90_r:$complist"
        fi
        evar=OMPI_FC
    else

When it is mpif90, the xlf90_r is included in the compiler list. But it is still unclear why "--showme" gives us the same results. I will ask this question in next week Summit workshop.

@rljacob
Copy link
Member

rljacob commented Apr 5, 2019

What is the status of this PR?

@minxu74
Copy link
Contributor Author

minxu74 commented Apr 5, 2019

@rljacob I will merge it today.

minxu74 added a commit that referenced this pull request Apr 6, 2019
…to next (PR #2724)

Change the IBM Fortran and C wrappers from the Fortran 77 to
Fortran 90 functionality and change their MPI wrappers to the
common names (i.e. mpif90, mpicc, and mpicxx).

* minxu74/machines/summit/update-ibm-compiler-wrapper:
  Change the IBM Fortran and C wrappers on Summit
@minxu74 minxu74 merged commit 37cbcfc into master Apr 6, 2019
@minxu74 minxu74 deleted the minxu74/machines/summit/update-ibm-compiler-wrapper branch May 7, 2019 15:33
jgfouca pushed a commit that referenced this pull request Jun 25, 2019
…#2724)

Change the IBM Fortran and C wrappers from the Fortran 77 to
Fortran 90 functionality and change their MPI wrappers to the
common names (i.e. mpif90, mpicc, and mpicxx).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants