Example #1
0
    2) They're almost always wrappers, not actual compilers.
    3) They almost always depend on CPU compilers.
    
We keep a separate knowledge base for MPI compilers to simplify compiler
identification and because TAU doesn't require MPI for all configurations.
"""
from taucmdr.cf.compiler import Knowledgebase


MPI_COMPILERS = Knowledgebase('MPI', 'Compilers supporting the Message Passing Interface (MPI)',
                              CC=('MPI C', 'MPI_CC'),
                              CXX=('MPI C++', 'MPI_CXX'),
                              FC=('MPI Fortran', ('MPI_FC', 'MPI_F77', 'MPI_F90')))

SYSTEM = MPI_COMPILERS.add('System', show_wrapper_flags=['-show'],
                           CC='mpicc', 
                           CXX=('mpic++', 'mpicxx', 'mpiCC'), 
                           FC=('mpiftn', 'mpif90', 'mpif77', 'mpifort'))

INTEL = MPI_COMPILERS.add('Intel', show_wrapper_flags=['-show'],
                          CC='mpiicc', 
                          CXX='mpiicpc', 
                          FC='mpiifort')

IBM = MPI_COMPILERS.add('IBM', family_regex=r'^IBM XL',
                        version_flags=['-qversion'],
                        show_wrapper_flags=['-show'],
                        CC=('mpixlc_r', 'mpixlc', 'mpicc'), 
                        CXX=('mpixlcxx_r', 'mpixlcxx', 'mpixlC_r', 'mpic++', 'mpicxx', 'mpiCC'),
                        FC=('mpixlf_r', 'mpixlf', 'mpixlf90_r', 'mpixlf90', 'mpixlf95_r', 'mpixlf95', 
                            'mpixlf2003_r', 'mpixlf2003', 'mpixlf2008_r', 'mpixlf2008', 'mpixlf77_r', 'mpixlf77', 
                            'mpifort', 'mpif90', 'mpif77'))
Example #2
0
"""SHMEM compiler knowledgebase.

Keep a separate knowledge base for SHMEM compilers to simplify compiler
identification and because TAU doesn't require SHMEM for all configurations.
"""
from taucmdr.cf.compiler import Knowledgebase

SHMEM_COMPILERS = Knowledgebase(
    'SHMEM',
    'Compilers supporting Symmetric Hierarchical Memory',
    CC=('SHMEM C', 'SHMEM_CC'),
    CXX=('SHMEM C++', 'SHMEM_CXX'),
    FC=('SHMEM Fortran', ('SHMEM_FC', 'SHMEM_F77', 'SHMEM_F90')))

OPENSHMEM = SHMEM_COMPILERS.add('OpenSHMEM',
                                CC='oshcc',
                                CXX=('oshcxx', 'oshc++', 'oshCC'),
                                FC='oshfort')

SOS = SHMEM_COMPILERS.add('SOS',
                          show_wrapper_flags=['-show'],
                          CC='oshcc',
                          CXX=('oshc++', 'oshCC'),
                          FC='oshfort')

CRAY_SHMEM = SHMEM_COMPILERS.add(
    'Cray',
    family_regex=r'-I.*cray',
    version_flags=['-craype-verbose', '--version', '-E'],
    show_wrapper_flags=['-craype-verbose', '--version', '-E'],
    CC='cc',
    CXX='CC',
Example #3
0
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
"""CUDA compiler knowledgebase."""

from taucmdr.cf.compiler import Knowledgebase

CUDA_COMPILERS = Knowledgebase('CUDA',
                               'Compilers supporting CUDA',
                               CXX=('CUDA', 'CU'),
                               FC=('CUDA Fortran', 'CUF'))

NVIDIA = CUDA_COMPILERS.add('NVIDIA', CXX='nvcc')

IBM = CUDA_COMPILERS.add('IBM',
                         family_regex=r'^IBM XL',
                         version_flags=['-qversion'],
                         FC='xlcuf')

CUDA_CXX = CUDA_COMPILERS.roles['CXX']
CUDA_FC = CUDA_COMPILERS.roles['FC']
Example #4
0
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
"""SHMEM compiler knowledgebase.

Keep a separate knowledge base for SHMEM compilers to simplify compiler
identification and because TAU doesn't require SHMEM for all configurations.
"""
from taucmdr.cf.compiler import Knowledgebase


SHMEM_COMPILERS = Knowledgebase('SHMEM', 'Compilers supporting Symmetric Hierarchical Memory',
                                CC=('SHMEM C', 'SHMEM_CC'),
                                CXX=('SHMEM C++', 'SHMEM_CXX'),
                                FC=('SHMEM Fortran', ('SHMEM_FC', 'SHMEM_F77', 'SHMEM_F90')))

OPENSHMEM = SHMEM_COMPILERS.add('OpenSHMEM',
                                CC='oshcc', CXX=('oshcxx', 'oshc++', 'oshCC'), FC='oshfort')

SOS = SHMEM_COMPILERS.add('SOS',
                          show_wrapper_flags=['-show'], 
                          CC='oshcc', CXX=('oshc++', 'oshCC'), FC='oshfort')

CRAY_SHMEM = SHMEM_COMPILERS.add('Cray', family_regex=r'-I.*cray', 
                                 version_flags=['-craype-verbose', '--version', '-E'],
                                 show_wrapper_flags=['-craype-verbose', '--version', '-E'],
                                 CC='cc', CXX='CC', FC='ftn')

SHMEM_CC = SHMEM_COMPILERS.roles['CC']
SHMEM_CXX = SHMEM_COMPILERS.roles['CXX']
SHMEM_FC = SHMEM_COMPILERS.roles['FC']
Example #5
0
#     be used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
"""CUDA compiler knowledgebase."""

from taucmdr.cf.compiler import Knowledgebase


CUDA_COMPILERS = Knowledgebase('CUDA', 'Compilers supporting CUDA',
                               CXX=('CUDA', 'CU'),
                               FC=('CUDA Fortran', 'CUF'))

NVIDIA = CUDA_COMPILERS.add('NVIDIA', CXX='nvcc') 

IBM = CUDA_COMPILERS.add('IBM', family_regex=r'^IBM XL', version_flags=['-qversion'],
                         FC='xlcuf')

CUDA_CXX = CUDA_COMPILERS.roles['CXX']
CUDA_FC = CUDA_COMPILERS.roles['FC']
Example #6
0
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
"""
Python Interpreter Knowledgebase (implemented using the compiler classes)

"""
from taucmdr.cf.compiler import Knowledgebase

PYTHON_INTERPRETERS = Knowledgebase(
    'python',
    'Compilers targeting different versions of Python',
    PY=('python', 'python')  # language: python, envars: python
)

PYTHON2 = PYTHON_INTERPRETERS.add('PY2_INTERPRETER',
                                  family_regex=r'^Python 2',
                                  version_flags=['--version'],
                                  PY=('python2', 'python'))

PYTHON3 = PYTHON_INTERPRETERS.add('PY3_INTERPRETER',
                                  family_regex=r'^Python 3',
                                  version_flags=['--version'],
                                  PY=('python3', 'python'))

PY = PYTHON_INTERPRETERS.roles['PY']
Example #7
0
These are the principal compilers used by the system and **must** be identified
to successfully configure and install TAU.
"""
from taucmdr.cf.compiler import Knowledgebase

HOST_COMPILERS = Knowledgebase('Host',
                               'Compilers targeting the host CPU',
                               CC=('C', 'CC'),
                               CXX=('C++', 'CXX'),
                               FC=('Fortran', ('FC', 'F77', 'F90')),
                               UPC=('Universal Parallel C', 'UPC'))

SYSTEM = HOST_COMPILERS.add('System',
                            CC='cc',
                            CXX=('c++', 'cxx', 'CC'),
                            FC=('ftn', 'f90', 'f77'),
                            UPC='upc')

GNU = HOST_COMPILERS.add('GNU',
                         family_regex=r'Free Software Foundation, Inc',
                         CC='gcc',
                         CXX='g++',
                         FC=('gfortran', 'g77'),
                         UPC='gupc')

INTEL = HOST_COMPILERS.add('Intel',
                           family_regex=r'Intel Corporation',
                           CC='icc',
                           CXX='icpc',
                           FC='ifort')
Example #8
0
# (3) Neither the name of ParaTools, Inc. nor the names of its contributors may
#     be used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
"""CAF compiler knowledgebase.

We keep a separate knowledge base for CAF compilers to simplify compiler
identification and because TAU doesn't require CAF for all configurations.
"""
from taucmdr.cf.compiler import Knowledgebase

CAF_COMPILERS = Knowledgebase('CAF', 'Compilers supporting Coarray Fortran',
                              FC=('Coarray Fortran', ('FC', 'F77', 'F90')))

SYSTEM = CAF_COMPILERS.add('System', show_wrapper_flags=['-show'],
                           FC='caf')

CAF_FC = CAF_COMPILERS.roles['FC']