<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic EDIT: more `effort' in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023509#M4077</link>
    <description>&lt;P&gt;&lt;STRONG&gt;EDIT: more `effort'&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;Removing all -openmp flags and resulting:&lt;/P&gt;

&lt;P&gt;within libhpl.a can't reference to omp_get_thread_num()&lt;/P&gt;

&lt;P&gt;...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Rewrite the Make.CUDA on the successfully compiled one (with MKL)&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;#
#     This is just a sample Make.
#     The user may need to edit:
#         1.) TOPdir
#         2.) MPI variables (MPdir,MPinc,MPlib)
#         3.) MKL BLAS variables (LAdir, LAinc, LAlib)
#         4.) The Compiler and Compiler/Linker Options (CC,CCFLAGS)
#

#  
#  -- High Performance Computing Linpack Benchmark (HPL)                
#     HPL - 1.0a - January 20, 2004                          
#     Antoine P. Petitet                                                
#     University of Tennessee, Knoxville                                
#     Innovative Computing Laboratories                                 
#     (C) Copyright 2000-2004 All Rights Reserved                       
#                                                                       
#  -- Copyright notice and Licensing terms:                             
#                                                                       
#  Redistribution  and  use in  source and binary forms, with or without
#  modification, are  permitted provided  that the following  conditions
#  are met:                                                             
#                                                                       
#  1. Redistributions  of  source  code  must retain the above copyright
#  notice, this list of conditions and the following disclaimer.        
#                                                                       
#  2. Redistributions in binary form must reproduce  the above copyright
#  notice, this list of conditions,  and the following disclaimer in the
#  documentation and/or other materials provided with the distribution. 
#                                                                       
#  3. All  advertising  materials  mentioning  features  or  use of this
#  software must display the following acknowledgement:                 
#  This  product  includes  software  developed  at  the  University  of
#  Tennessee, Knoxville, Innovative Computing Laboratories.             
#                                                                       
#  4. The name of the  University,  the name of the  Laboratory,  or the
#  names  of  its  contributors  may  not  be used to endorse or promote
#  products  derived   from   this  software  without  specific  written
#  permission.                                                          
#                                                                       
#  -- Disclaimer:                                                       
#                                                                       
#  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 UNIVERSITY
#  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. 
# ######################################################################
# Copyright (c) 2011,  NVIDIA CORPORATION
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are 
# met: Redistributions of source code must retain the above copyright 
# notice, this list of conditions and the following disclaimer. 
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. Neither the name 
# of NVIDIA 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.

#  
# ----------------------------------------------------------------------
# - shell --------------------------------------------------------------
# ----------------------------------------------------------------------
#
SHELL        = /bin/sh
#
CD           = cd
CP           = cp
LN_S         = ln -fs
MKDIR        = mkdir -p
RM           = /bin/rm -f
TOUCH        = touch
#
# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH         = CUDA
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
# Set TOPdir to the location of where this is being built
ifndef  TOPdir
TOPdir = /root/hpl-2.0_FERMI_v15
endif
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
#
HPLlib       = $(LIBdir)/libhpl.a 
#
# ----------------------------------------------------------------------
# - Message Passing library (MPI) --------------------------------------
# ----------------------------------------------------------------------
# MPinc tells the  C  compiler where to find the Message Passing library
# header files,  MPlib  is defined  to be the name of  the library to be
# used. The variable MPdir is only used for defining MPinc and MPlib.
#
MPdir        = /opt/intel/impi/4.1.3.049/intel64
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi_mt.so 
#MPlib        = $(MPdir)/lib64/libmpich.a
#
# ----------------------------------------------------------------------
# - Linear Algebra library (BLAS) -----------------------------
# ----------------------------------------------------------------------
# LAinc tells the  C  compiler where to find the Linear Algebra  library
# header files,  LAlib  is defined  to be the name of  the library to be
# used. The variable LAdir is only used for defining LAinc and LAlib.
#
#LAdir        = $(TOPdir)/../../lib/em64t
LAdir        = /opt/intel/mkl/lib/intel64
LAinc        = -I/opt/intel/mkl/include
# CUDA
#LAlib        = -L /home/cuda/Fortran_Cuda_Blas  -ldgemm -L/usr/local/cuda/lib -lcublas  -L$(LAdir) -lmkl -lguide -lpthread
LAlib        = -L $(TOPdir)/src/cuda  -ldgemm -L/opt/cuda6/lib64 -lcuda -lcudart -lcublas -L$(LAdir) -lpthread
#
# ----------------------------------------------------------------------
# - F77 / C interface --------------------------------------------------
# ----------------------------------------------------------------------
# You can skip this section  if and only if  you are not planning to use
# a  BLAS  library featuring a Fortran 77 interface.  Otherwise,  it  is
# necessary  to  fill out the  F2CDEFS  variable  with  the  appropriate
# options.  **One and only one**  option should be chosen in **each** of
# the 3 following categories:
#
# 1) name space (How C calls a Fortran 77 routine)
#
# -DAdd_              : all lower case and a suffixed underscore  (Suns,
#                       Intel, ...),                           [default]
# -DNoChange          : all lower case (IBM RS6000),
# -DUpCase            : all upper case (Cray),
# -DAdd__             : the FORTRAN compiler in use is f2c.
#
# 2) C and Fortran 77 integer mapping
#
# -DF77_INTEGER=int   : Fortran 77 INTEGER is a C int,         [default]
# -DF77_INTEGER=long  : Fortran 77 INTEGER is a C long,
# -DF77_INTEGER=short : Fortran 77 INTEGER is a C short.
#
# 3) Fortran 77 string handling
#
# -DStringSunStyle    : The string address is passed at the string loca-
#                       tion on the stack, and the string length is then
#                       passed as  an  F77_INTEGER  after  all  explicit
#                       stack arguments,                       [default]
# -DStringStructPtr   : The address  of  a  structure  is  passed  by  a
#                       Fortran 77  string,  and the structure is of the
#                       form: struct {char *cp; F77_INTEGER len;},
# -DStringStructVal   : A structure is passed by value for each  Fortran
#                       77 string,  and  the  structure is  of the form:
#                       struct {char *cp; F77_INTEGER len;},
# -DStringCrayStyle   : Special option for  Cray  machines,  which  uses
#                       Cray  fcd  (fortran  character  descriptor)  for
#                       interoperation.
#
F2CDEFS      = -DAdd__ -DF77_INTEGER=int -DStringSunStyle
#
# ----------------------------------------------------------------------
# - HPL includes / libraries / specifics -------------------------------
# ----------------------------------------------------------------------
#
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -I/usr/local/cuda/include
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)
#
# - Compile time options -----------------------------------------------
#
# -DHPL_COPY_L           force the copy of the panel L before bcast;
# -DHPL_CALL_CBLAS       call the cblas interface;
# -DHPL_DETAILED_TIMING  enable detailed timers;
# -DASYOUGO              enable timing information as you go (nonintrusive)
# -DASYOUGO2             slightly intrusive timing information
# -DASYOUGO2_DISPLAY     display detailed DGEMM information
# -DENDEARLY             end the problem early  
# -DFASTSWAP             insert to use DLASWP instead of HPL code
#
# By default HPL will:
#    *) not copy L before broadcast,
#    *) call the BLAS Fortran 77 interface,
#    *) not display detailed timing information.
#
HPL_OPTS     =  -DCUDA
# ----------------------------------------------------------------------
#
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
#
# ----------------------------------------------------------------------
# - Compilers / linkers - Optimization flags ---------------------------
# ----------------------------------------------------------------------
#
# next two lines for GNU Compilers:
CC      = mpiicc
CCNOOPT = $(HPL_DEFS) -O0 -w -nocompchk
MKLINCDIR = -I/opt/intel/mkl/include
CCFLAGS = $(HPL_DEFS) $(MKLINCDIR) -fomit-frame-pointer -O3 -funroll-loops -W -Wall -openmp
# next two lines for Intel Compilers:
# CC      = mpicc
#CCFLAGS = $(HPL_DEFS) -O3 -axS -w -fomit-frame-pointer -funroll-loops -openmp 
#
CCNOOPT      = $(HPL_DEFS) -O0 -w
#
# On some platforms,  it is necessary  to use the Fortran linker to find
# the Fortran internals used in the BLAS library.
#
LINKER       = $(CC)
#LINKFLAGS    = $(CCFLAGS) -static_mpi
LINKFLAGS    = $(CCFLAGS) -openmp -mt_mpi -nocompchk
#
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo
#
# ----------------------------------------------------------------------
MAKE = make TOPdir=$(TOPdir)
&lt;/PRE&gt;

&lt;P&gt;The SAME error as described&amp;nbsp; at top&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Please help me,&lt;/P&gt;

&lt;P&gt;thank you&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
    <pubDate>Sat, 24 May 2014 03:15:40 GMT</pubDate>
    <dc:creator>dye_J_</dc:creator>
    <dc:date>2014-05-24T03:15:40Z</dc:date>
    <item>
      <title>libmpi.so.4: could not read symbols: Bad Value</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023508#M4076</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;I am new to HPC, playing with MKL, CUDA and HPL from Nvidia to &lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;optimize the result.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Everything compiling smoothly until enter the ptest/ directory and broke, It says:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;make[2]: Entering directory `/root/hpl-2.0_FERMI_v15/testing/ptest/CUDA'
mpicc -DAdd__ -DF77_INTEGER=int -DStringSunStyle -DCUDA -I/root/hpl-2.0_FERMI_v15/include -I/root/hpl-2.0_FERMI_v15/include/CUDA -I/opt/intel/mkl/include -I/opt/intel/impi/4.1.3.049/intel64/include -I/usr/local/cuda/include -fomit-frame-pointer -O3 -funroll-loops -W -Wall -fopenmp -mt_mpi -m64 -lmpi_mt -o /root/hpl-2.0_FERMI_v15/bin/CUDA/xhpl HPL_pddriver.o         HPL_pdinfo.o           HPL_pdtest.o /root/hpl-2.0_FERMI_v15/lib/CUDA/libhpl.a  -L /root/hpl-2.0_FERMI_v15/src/cuda  -ldgemm -L/opt/cuda6/lib64 -lcuda -lcudart -lcublas -L/opt/intel/mkl/lib/intel64 -lpthread -lmpi_mt /opt/intel/impi/4.1.3.049/intel64/lib/libmpi_mt.so  -lmpi_mt
/usr/lib64/gcc/x86_64-slackware-linux/4.8.2/../../../../x86_64-slackware-linux/bin/ld: MPIR_Thread: TLS definition in /opt/intel/impi/4.1.3.049/intel64/lib/libmpi_mt.so section .tbss mismatches non-TLS definition in /opt/intel/impi/4.1.3.049/intel64/lib/libmpi.so.4 section .bss
/opt/intel/impi/4.1.3.049/intel64/lib/libmpi.so.4: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [dexe.grd] Error 1
&lt;/PRE&gt;

&lt;P&gt;FYI:&lt;/P&gt;

&lt;P&gt;mpicc -show&lt;/P&gt;

&lt;P&gt;gcc -I/opt/intel/impi/4.1.3.049/intel64/include -L/opt/intel/impi/4.1.3.049/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/impi/4.1.3.049/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.1 -lmpigf -lmpi -lmpigi -ldl -lrt -lpthread&lt;/P&gt;

&lt;P&gt;SHELL env&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;CC=/opt/intel/composer_xe_2013_sp1.3.174/bin/intel64/icc
CXX=/opt/intel/composer_xe_2013_sp1.3.174/bin/intel64icpc
F77=/opt/intel/impi/4.1.3.049/intel64/bin/mpiifort
FC=/opt/intel/impi/4.1.3.049/intel64/bin/mpiifort
FC90=/opt/intel/impi/4.1.3.049/intel64/bin/mpiifort

LD_LIBRARY_PATH=/opt/intel/composerxe/mkl/lib/intel64:/opt/intel/impi/4.1.3.049/lib64:/opt/intel/composerxe/lib/intel64/:/opt/intel/composer_xe_2013_sp1.3.174/tbb/lib/intel64/:/opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/:/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64/:/opt/cuda6/lib64:/opt/cuda6/lib/:/usr/local/bin/mpi/intel/lib/:/usr/X11R6/lib64/:/usr/local/lib64/

PATH= /opt/intel/impi/4.1.3.049/bin64/:/opt/intel/composer_xe_2013_sp1.3.174/bin/intel64:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/kde4/libexec:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/java/jre/bin:/usr/lib64/qt/bin:/usr/share/texmf/bin &lt;/PRE&gt;

&lt;P&gt;gcc --version&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;gcc (GCC) 4.8.2&lt;/PRE&gt;

&lt;P&gt;part of Make.CUDA&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;MPdir        = /opt/intel/impi/4.1.3.049/intel64
MPlib        = $(MPdir)/lib/libmpi_mt.so 
LAdir        = /opt/intel/mkl/lib/intel64
LAinc        = -I/opt/intel/mkl/include
LAlib        = -L $(TOPdir)/src/cuda  -ldgemm -L/opt/cuda6/lib64 -lcuda -lcudart -lcublas -L$(LAdir) -lpthread -lmpi_mt
CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall -fopenmp -mt_mpi -m64
LINKFLAGS    = $(CCFLAGS) -lmpi_mt
&lt;/PRE&gt;

&lt;P&gt;&lt;STRONG&gt;My `effort' on fix this error:&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;As what I found in:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/392483" target="_blank"&gt;https://software.intel.com/en-us/forums/topic/392483&lt;/A&gt;&lt;/PRE&gt;

&lt;P&gt;I put -lmpi_mt everywhere to make sure no lib is NOT compiled with libmpi.so&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;In thread:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/294642" target="_blank"&gt;https://software.intel.com/en-us/forums/topic/294642&lt;/A&gt;&lt;/PRE&gt;

&lt;P&gt;I put an extra -mt_mpi flag to CCFLAGS&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I use the -show trick discribed here:&lt;/P&gt;

&lt;P&gt;&lt;A href="https://software.intel.com/en-us/forums/topic/508632" target="_blank"&gt;https://software.intel.com/en-us/forums/topic/508632&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;It display the -lmpi_mt, but the compiling still not working as well.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Tried to replace Impi with openmpi which compiled by icc as discribe on a web source pdf: HOWTO-HPL-GPU.pdf&lt;/P&gt;

&lt;P&gt;the same problem as the top of this thread discribed&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;FYI2:&lt;/P&gt;

&lt;P&gt;I used to succeed in compiling &amp;amp; running the (pure) hpl with MKL, part of&amp;nbsp; Make.Linun_PII_CBLAS here:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;HPLlibHybrid = /opt/intel/composer_xe_2013_sp1.3.174/mkl/benchmarks/mp_linpack/lib_hybrid/mic/libhpl_hybrid.a
LAdir        = /opt/intel
LAinc        = -I$(LAdir)/mkl/include
LAlib        = -L$(LAdir)/mkl/lib/intel64 -Wl,--start-group $(LAdir)/mkl/lib/intel64/libmkl_intel_lp64.a $(LAdir)/mkl/lib/intel64/libmkl_intel_thread.a $(LAdir)/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -ldl $(HPLlibHybrid)
F2CDEFS      = -DAdd__ -DF77_INTEGER=int -DStringSunStyle
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)
HPL_OPTS     = -DASYOUGO -DHYBRID
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC           = mpiicc
CCNOOPT      = $(HPL_DEFS) -O0 -w -nocompchk
MKLINCDIR    = -I"/opt/intel/mkl/include"
CCFLAGS      = $(HPL_DEFS) $(MKLINCDIR) -O3  -w -ansi-alias -i-static -z noexecstack -z relro -z now -openmp -nocompchk
LINKER       = $(CC)
LINKFLAGS    = $(CCFLAGS) -openmp -mt_mpi $(STATICFLAG) -nocompchk
&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 24 May 2014 02:56:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023508#M4076</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-24T02:56:46Z</dc:date>
    </item>
    <item>
      <title>EDIT: more `effort'</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023509#M4077</link>
      <description>&lt;P&gt;&lt;STRONG&gt;EDIT: more `effort'&lt;/STRONG&gt;&lt;/P&gt;

&lt;P&gt;Removing all -openmp flags and resulting:&lt;/P&gt;

&lt;P&gt;within libhpl.a can't reference to omp_get_thread_num()&lt;/P&gt;

&lt;P&gt;...&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Rewrite the Make.CUDA on the successfully compiled one (with MKL)&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;#
#     This is just a sample Make.
#     The user may need to edit:
#         1.) TOPdir
#         2.) MPI variables (MPdir,MPinc,MPlib)
#         3.) MKL BLAS variables (LAdir, LAinc, LAlib)
#         4.) The Compiler and Compiler/Linker Options (CC,CCFLAGS)
#

#  
#  -- High Performance Computing Linpack Benchmark (HPL)                
#     HPL - 1.0a - January 20, 2004                          
#     Antoine P. Petitet                                                
#     University of Tennessee, Knoxville                                
#     Innovative Computing Laboratories                                 
#     (C) Copyright 2000-2004 All Rights Reserved                       
#                                                                       
#  -- Copyright notice and Licensing terms:                             
#                                                                       
#  Redistribution  and  use in  source and binary forms, with or without
#  modification, are  permitted provided  that the following  conditions
#  are met:                                                             
#                                                                       
#  1. Redistributions  of  source  code  must retain the above copyright
#  notice, this list of conditions and the following disclaimer.        
#                                                                       
#  2. Redistributions in binary form must reproduce  the above copyright
#  notice, this list of conditions,  and the following disclaimer in the
#  documentation and/or other materials provided with the distribution. 
#                                                                       
#  3. All  advertising  materials  mentioning  features  or  use of this
#  software must display the following acknowledgement:                 
#  This  product  includes  software  developed  at  the  University  of
#  Tennessee, Knoxville, Innovative Computing Laboratories.             
#                                                                       
#  4. The name of the  University,  the name of the  Laboratory,  or the
#  names  of  its  contributors  may  not  be used to endorse or promote
#  products  derived   from   this  software  without  specific  written
#  permission.                                                          
#                                                                       
#  -- Disclaimer:                                                       
#                                                                       
#  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 UNIVERSITY
#  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. 
# ######################################################################
# Copyright (c) 2011,  NVIDIA CORPORATION
# All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are 
# met: Redistributions of source code must retain the above copyright 
# notice, this list of conditions and the following disclaimer. 
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution. Neither the name 
# of NVIDIA 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.

#  
# ----------------------------------------------------------------------
# - shell --------------------------------------------------------------
# ----------------------------------------------------------------------
#
SHELL        = /bin/sh
#
CD           = cd
CP           = cp
LN_S         = ln -fs
MKDIR        = mkdir -p
RM           = /bin/rm -f
TOUCH        = touch
#
# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH         = CUDA
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
# Set TOPdir to the location of where this is being built
ifndef  TOPdir
TOPdir = /root/hpl-2.0_FERMI_v15
endif
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
#
HPLlib       = $(LIBdir)/libhpl.a 
#
# ----------------------------------------------------------------------
# - Message Passing library (MPI) --------------------------------------
# ----------------------------------------------------------------------
# MPinc tells the  C  compiler where to find the Message Passing library
# header files,  MPlib  is defined  to be the name of  the library to be
# used. The variable MPdir is only used for defining MPinc and MPlib.
#
MPdir        = /opt/intel/impi/4.1.3.049/intel64
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi_mt.so 
#MPlib        = $(MPdir)/lib64/libmpich.a
#
# ----------------------------------------------------------------------
# - Linear Algebra library (BLAS) -----------------------------
# ----------------------------------------------------------------------
# LAinc tells the  C  compiler where to find the Linear Algebra  library
# header files,  LAlib  is defined  to be the name of  the library to be
# used. The variable LAdir is only used for defining LAinc and LAlib.
#
#LAdir        = $(TOPdir)/../../lib/em64t
LAdir        = /opt/intel/mkl/lib/intel64
LAinc        = -I/opt/intel/mkl/include
# CUDA
#LAlib        = -L /home/cuda/Fortran_Cuda_Blas  -ldgemm -L/usr/local/cuda/lib -lcublas  -L$(LAdir) -lmkl -lguide -lpthread
LAlib        = -L $(TOPdir)/src/cuda  -ldgemm -L/opt/cuda6/lib64 -lcuda -lcudart -lcublas -L$(LAdir) -lpthread
#
# ----------------------------------------------------------------------
# - F77 / C interface --------------------------------------------------
# ----------------------------------------------------------------------
# You can skip this section  if and only if  you are not planning to use
# a  BLAS  library featuring a Fortran 77 interface.  Otherwise,  it  is
# necessary  to  fill out the  F2CDEFS  variable  with  the  appropriate
# options.  **One and only one**  option should be chosen in **each** of
# the 3 following categories:
#
# 1) name space (How C calls a Fortran 77 routine)
#
# -DAdd_              : all lower case and a suffixed underscore  (Suns,
#                       Intel, ...),                           [default]
# -DNoChange          : all lower case (IBM RS6000),
# -DUpCase            : all upper case (Cray),
# -DAdd__             : the FORTRAN compiler in use is f2c.
#
# 2) C and Fortran 77 integer mapping
#
# -DF77_INTEGER=int   : Fortran 77 INTEGER is a C int,         [default]
# -DF77_INTEGER=long  : Fortran 77 INTEGER is a C long,
# -DF77_INTEGER=short : Fortran 77 INTEGER is a C short.
#
# 3) Fortran 77 string handling
#
# -DStringSunStyle    : The string address is passed at the string loca-
#                       tion on the stack, and the string length is then
#                       passed as  an  F77_INTEGER  after  all  explicit
#                       stack arguments,                       [default]
# -DStringStructPtr   : The address  of  a  structure  is  passed  by  a
#                       Fortran 77  string,  and the structure is of the
#                       form: struct {char *cp; F77_INTEGER len;},
# -DStringStructVal   : A structure is passed by value for each  Fortran
#                       77 string,  and  the  structure is  of the form:
#                       struct {char *cp; F77_INTEGER len;},
# -DStringCrayStyle   : Special option for  Cray  machines,  which  uses
#                       Cray  fcd  (fortran  character  descriptor)  for
#                       interoperation.
#
F2CDEFS      = -DAdd__ -DF77_INTEGER=int -DStringSunStyle
#
# ----------------------------------------------------------------------
# - HPL includes / libraries / specifics -------------------------------
# ----------------------------------------------------------------------
#
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc) -I/usr/local/cuda/include
HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)
#
# - Compile time options -----------------------------------------------
#
# -DHPL_COPY_L           force the copy of the panel L before bcast;
# -DHPL_CALL_CBLAS       call the cblas interface;
# -DHPL_DETAILED_TIMING  enable detailed timers;
# -DASYOUGO              enable timing information as you go (nonintrusive)
# -DASYOUGO2             slightly intrusive timing information
# -DASYOUGO2_DISPLAY     display detailed DGEMM information
# -DENDEARLY             end the problem early  
# -DFASTSWAP             insert to use DLASWP instead of HPL code
#
# By default HPL will:
#    *) not copy L before broadcast,
#    *) call the BLAS Fortran 77 interface,
#    *) not display detailed timing information.
#
HPL_OPTS     =  -DCUDA
# ----------------------------------------------------------------------
#
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
#
# ----------------------------------------------------------------------
# - Compilers / linkers - Optimization flags ---------------------------
# ----------------------------------------------------------------------
#
# next two lines for GNU Compilers:
CC      = mpiicc
CCNOOPT = $(HPL_DEFS) -O0 -w -nocompchk
MKLINCDIR = -I/opt/intel/mkl/include
CCFLAGS = $(HPL_DEFS) $(MKLINCDIR) -fomit-frame-pointer -O3 -funroll-loops -W -Wall -openmp
# next two lines for Intel Compilers:
# CC      = mpicc
#CCFLAGS = $(HPL_DEFS) -O3 -axS -w -fomit-frame-pointer -funroll-loops -openmp 
#
CCNOOPT      = $(HPL_DEFS) -O0 -w
#
# On some platforms,  it is necessary  to use the Fortran linker to find
# the Fortran internals used in the BLAS library.
#
LINKER       = $(CC)
#LINKFLAGS    = $(CCFLAGS) -static_mpi
LINKFLAGS    = $(CCFLAGS) -openmp -mt_mpi -nocompchk
#
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo
#
# ----------------------------------------------------------------------
MAKE = make TOPdir=$(TOPdir)
&lt;/PRE&gt;

&lt;P&gt;The SAME error as described&amp;nbsp; at top&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Please help me,&lt;/P&gt;

&lt;P&gt;thank you&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
      <pubDate>Sat, 24 May 2014 03:15:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023509#M4077</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-24T03:15:40Z</dc:date>
    </item>
    <item>
      <title>Please help,
thanks,
dye</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023510#M4078</link>
      <description>&lt;P&gt;Please help,&lt;/P&gt;

&lt;P&gt;thanks,&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
      <pubDate>Sun, 25 May 2014 20:53:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023510#M4078</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-25T20:53:57Z</dc:date>
    </item>
    <item>
      <title>As far as I can tell,</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023511#M4079</link>
      <description>&lt;P&gt;As far as I can tell, something is getting compiled without the multithreaded MPI library.&amp;nbsp; Please attach the entire output from a fresh make as a text file, and I'll take a look at it.&lt;/P&gt;</description>
      <pubDate>Tue, 27 May 2014 19:15:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023511#M4079</guid>
      <dc:creator>James_T_Intel</dc:creator>
      <dc:date>2014-05-27T19:15:20Z</dc:date>
    </item>
    <item>
      <title>Hi James Tullos,</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023512#M4080</link>
      <description>&lt;P&gt;Hi James Tullos,&lt;/P&gt;

&lt;P&gt;Thanks for your generous viewing the output, here they comes via attachments(made via the `script`).&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;FYI:&lt;/P&gt;

&lt;P&gt;setenv.txt -- the environment I used for compiling.&lt;/P&gt;

&lt;P&gt;modifiedmake.txt -- make with Make.CUDA which lpthread everywhere; with `cat Make.CUDA` first.&lt;/P&gt;

&lt;P&gt;puremake.txt -- make with Make.CUDA which only necessary changes.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;many thanks,&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
      <pubDate>Wed, 28 May 2014 02:05:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023512#M4080</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-28T02:05:49Z</dc:date>
    </item>
    <item>
      <title>Oops, it looks that</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023513#M4081</link>
      <description>&lt;P&gt;Oops, it looks that `modifiedmake.txt' attachment is missing,&lt;/P&gt;

&lt;P&gt;let me upload it again!&lt;/P&gt;</description>
      <pubDate>Thu, 29 May 2014 14:25:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023513#M4081</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-29T14:25:37Z</dc:date>
    </item>
    <item>
      <title>Please add -mt_mpi to CCNOOPT</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023514#M4082</link>
      <description>&lt;P&gt;Please add -mt_mpi to CCNOOPT.&amp;nbsp; This is being used when compiling HPL_dlamch and is getting the single-threaded MPI library into your final build.&lt;/P&gt;</description>
      <pubDate>Thu, 29 May 2014 18:47:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023514#M4082</guid>
      <dc:creator>James_T_Intel</dc:creator>
      <dc:date>2014-05-29T18:47:33Z</dc:date>
    </item>
    <item>
      <title>Hi James,</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023515#M4083</link>
      <description>&lt;P&gt;Hi James,&lt;/P&gt;

&lt;P&gt;I patched your switch to my Make.CUDA, but still not working :S&lt;/P&gt;

&lt;P&gt;the same error report as mentioned at OP&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;FYI: I made a script this time, too.&lt;/P&gt;

&lt;P&gt;Thanks for your helping,&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
      <pubDate>Fri, 30 May 2014 00:09:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023515#M4083</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-05-30T00:09:42Z</dc:date>
    </item>
    <item>
      <title>Ok, I think I've found it now</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023516#M4084</link>
      <description>&lt;P&gt;Ok, I think I've found it now.&amp;nbsp; Look at lines 313-315.&lt;/P&gt;

&lt;PRE class="brush:plain;"&gt;mpicc -O0 -c -fPIC -DMPI cuda_dgemm.c -o cuda_dgemm.o -I/usr/local/cuda/include
mpicc -O0 -c -fPIC -DMPI fermi_dgemm.c -o fermi_dgemm.o -I/usr/local/cuda/include
mpicc -O3 -shared -Wl,-soname,libdgemm.so.1 -o libdgemm.so.1.0.1 cuda_dgemm.o fermi_dgemm.o -L/usr/local/cuda/lib64 -lcudart -lcuda
&lt;/PRE&gt;

&lt;P&gt;Here, you're compiling libdgemm.so.1.0.1 with the single-threaded MPI library.&amp;nbsp; The compile options used here do not appear to be defined in the main makefile.&amp;nbsp; Check in /root/t/build/hpl-2.0_FERMI_v15/src/cuda for any makefiles and add -mt_mpi there.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jun 2014 20:56:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023516#M4084</guid>
      <dc:creator>James_T_Intel</dc:creator>
      <dc:date>2014-06-02T20:56:49Z</dc:date>
    </item>
    <item>
      <title>Hi James,</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023517#M4085</link>
      <description>&lt;P&gt;Hi James,&lt;/P&gt;

&lt;P&gt;Thank you very much for your supply! The `Bad Value' problem have been solved!!&lt;/P&gt;

&lt;P&gt;An addition to the src/cuda/Makefile of:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;CCNOOPT = -mt_mpi&lt;/PRE&gt;

&lt;P&gt;Make the change!!&lt;/P&gt;

&lt;P&gt;Although after that the libhpl.a stuff missing references in vary functions , I thought that's all Nvidia's issue and will going post that on their dev forum.&lt;/P&gt;

&lt;P&gt;Yours,&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jun 2014 04:43:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023517#M4085</guid>
      <dc:creator>dye_J_</dc:creator>
      <dc:date>2014-06-06T04:43:54Z</dc:date>
    </item>
    <item>
      <title>引文：dye J. 写道：</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023518#M4086</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;dye J. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Hi James,&lt;/P&gt;

&lt;P&gt;Thank you very much for your supply! The `Bad Value' problem have been solved!!&lt;/P&gt;

&lt;P&gt;An addition to the src/cuda/Makefile of:&lt;/P&gt;

&lt;PRE class="brush:bash;"&gt;CCNOOPT = -mt_mpi&lt;/PRE&gt;

&lt;P&gt;Make the change!!&lt;/P&gt;

&lt;P&gt;Although after that the libhpl.a stuff missing references in vary functions , I thought that's all Nvidia's issue and will going post that on their dev forum.&lt;/P&gt;

&lt;P&gt;Yours,&lt;/P&gt;

&lt;P&gt;dye&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Hello&lt;/P&gt;

&lt;P&gt;I meet the same problem whit you in this article,and you have solved it.&lt;/P&gt;

&lt;P&gt;I have read it , and i found that you solve the problem by add&amp;nbsp; a " CCNOOPT = -mt_mpi " in Makefile.&lt;/P&gt;

&lt;P&gt;But i don't know where exactly to add the sentence .&lt;/P&gt;

&lt;P&gt;Can you please send me your Make.CUDA and Makefile that can correctly work ?&lt;/P&gt;

&lt;P&gt;Thank you !&lt;/P&gt;</description>
      <pubDate>Mon, 22 Dec 2014 15:05:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023518#M4086</guid>
      <dc:creator>eric_z_</dc:creator>
      <dc:date>2014-12-22T15:05:21Z</dc:date>
    </item>
    <item>
      <title>If you need to link against</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023519#M4087</link>
      <description>&lt;P&gt;If you need to link against this library, you must set the option so that it is added to the link command, which should be using mpiifort, mpiicc, or mpiicpc, as it is a library which will work only with Intel MPI.&lt;/P&gt;

&lt;P&gt;The CCNOPT Makefile macro mentioned in the old thread is not a usual one (unless it is typical for CUDA), but we can't guess about your Makefile.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Dec 2014 16:05:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023519#M4087</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2014-12-22T16:05:16Z</dc:date>
    </item>
    <item>
      <title>Quote:James Tullos (Intel)</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023520#M4088</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;James Tullos (Intel) wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Ok, I think I've found it now.&amp;nbsp; Look at lines 313-315.&lt;/P&gt;

&lt;PRE class="brush:plain;"&gt;mpicc -O0 -c -fPIC -DMPI cuda_dgemm.c -o cuda_dgemm.o -I/usr/local/cuda/include
mpicc -O0 -c -fPIC -DMPI fermi_dgemm.c -o fermi_dgemm.o -I/usr/local/cuda/include
mpicc -O3 -shared -Wl,-soname,libdgemm.so.1 -o libdgemm.so.1.0.1 cuda_dgemm.o fermi_dgemm.o -L/usr/local/cuda/lib64 -lcudart -lcuda
&lt;/PRE&gt;

&lt;P&gt;Here, you're compiling libdgemm.so.1.0.1 with the single-threaded MPI library.&amp;nbsp; The compile options used here do not appear to be defined in the main makefile.&amp;nbsp; Check in /root/t/build/hpl-2.0_FERMI_v15/src/cuda for any makefiles and add -mt_mpi there.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;What if I want to strictly use the single threaded MPI for this CUDA HPL build? is there are way to force this while compiling?&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;rtm&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2015 12:44:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/libmpi-so-4-could-not-read-symbols-Bad-Value/m-p/1023520#M4088</guid>
      <dc:creator>Roshan_M_</dc:creator>
      <dc:date>2015-01-20T12:44:08Z</dc:date>
    </item>
  </channel>
</rss>

