<html><body>
<DIV>Hello all,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I am trying to configure HPL on a beowulf cluster that I have put together for a senior project at Weber State University, and I am having a little bit of trouble.&nbsp; First of all, about the cluster:</DIV>
<DIV>&nbsp;</DIV>
<DIV>4-node diskless cluster</DIV>
<DIV>Fedora Core 6 - 64 bit version</DIV>
<DIV>Intel Pentium D dual core processors</DIV>
<DIV>MSI 965 motherboards</DIV>
<DIV>&nbsp;</DIV>
<DIV>Right now I have one node doing a net boot with syslinux and would like to do a benchmark before I put the rest of the nodes together, so I can have a performance comparison with&nbsp;subsequent nodes.&nbsp; I have installed the following packages on my system for HPL:</DIV>
<DIV>&nbsp;</DIV>
<DIV>openmpi-1.1-7.fc6.x86_64.rpm</DIV>
<DIV>openmpi-devel-1.1-7.fc6.x86_64.rpm</DIV>
<DIV>openmpi-libs-1.1-7.fc6.x86_64.rpm</DIV>
<DIV>lapack-3.1.0-4.fc6.x86_64.rpm</DIV>
<DIV>Blas-3.1.0-4.fc6.x86_64.rpm</DIV>
<DIV>atlas-4.6.0-11.fc6.x86_64.rpm</DIV>
<DIV>cblas.tgz</DIV>
<DIV>hpl.tgz</DIV>
<DIV>&nbsp;</DIV>
<DIV>I may have installed more packages than necessary but I didn't think it would hurt.&nbsp; Everything has installed successfully but I can't get the makefile.&lt;arch&gt; down.&nbsp; I simply just don't understand enough of it to build it correctly.&nbsp; I just keep getting 'Make.inc' errors.&nbsp; The Makefile that I have attempted is below, called Make.Beowulf.&nbsp; I just used a generic makefile from the setups directory and attempted to supply some paths to the libraries but to no avail.&nbsp; I have tried to find documentation explaining more clearly how everything should be setup but nothing in lay-man terms, hence the errors.&nbsp; A few questions:</DIV>
<DIV>&nbsp;</DIV>
<DIV>What should my arch be?&nbsp; Does that even matter?&nbsp; Does it have to be x86_64?</DIV>
<DIV>I realize I have to supply paths to the BLAS and MPI headers and libraries but exactly <U>which</U> libraries and header files?</DIV>
<DIV>The compiler I am using is mpicc which is just linked to gcc, but shouldn't that compiler supply the links to the correct libraries and header files?</DIV>
<DIV>The MPlib parameter points to libmpich.a so I installed mpich2 but that didn't give me a libmpich.a directory so what should I use there?</DIV>
<DIV>Also, I am not using an network file systems so am I correct in assuming that all of the libraries need to be on each of the nodes?&nbsp; If so, I need to know exactly where to put them, and again, I believe they would need to be put into the exact same location, so the problem is, which libraries and header files exactly?&nbsp; (as to save precious RAM on each of the nodes).</DIV>
<DIV>&nbsp;</DIV>
<DIV>I realize I may be asking a lot but the end of the semester is just around the corner.&nbsp; I appreciate any help that you may give me ahead of time.&nbsp; Thanks.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Stephen Jenkins</DIV>
<DIV><A href="mailto:snj78@comcast.net">snj78@comcast.net</A></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Make.Beowulf</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>
<P>SHELL = /bin/sh</P>
<P>#</P>
<P>CD = cd</P>
<P>CP = cp</P>
<P>LN_S = ln -s</P>
<P>MKDIR = mkdir</P>
<P>RM = /bin/rm -f</P>
<P>TOUCH = touch</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - Platform identifier ------------------------------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P>#</P>
<P>ARCH = Linux_x86_64</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - HPL Directory Structure / HPL library ------------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P>#</P>
<P>TOPdir = $(HOME)/hpl</P>
<P>INCdir = $(TOPdir)/include</P>
<P>BINdir = $(TOPdir)/bin/$(ARCH)</P>
<P>LIBdir = $(TOPdir)/lib/$(ARCH)</P>
<P>#</P>
<P>HPLlib = $(LIBdir)/libhpl.a </P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - Message Passing library (MPI) --------------------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P># MPinc tells the C compiler where to find the Message Passing library</P>
<P># header files, MPlib is defined to be the name of the library to be</P>
<P># used. The variable MPdir is only used for defining MPinc and MPlib.</P>
<P>#</P>
<P>MPdir = /usr/include/openmpi</P>
<P>MPinc = -I$/usr/include/include</P>
<P>MPlib = $(MPdir)/lib/libmpich.a</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - Linear Algebra library (BLAS or VSIPL) -----------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P># LAinc tells the C compiler where to find the Linear Algebra library</P>
<P># header files, LAlib is defined to be the name of the library to be</P>
<P># used. The variable LAdir is only used for defining LAinc and LAlib.</P>
<P>#</P>
<P>LAdir = $(HOME)/netlib/ARCHIVES/Linux_PII</P>
<P>LAinc =</P>
<P>LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - F77 / C interface --------------------------------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P># You can skip this section if and only if you are not planning to use</P>
<P># a BLAS library featuring a Fortran 77 interface. Otherwise, it is</P>
<P># necessary to fill out the F2CDEFS variable with the appropriate</P>
<P># options. **One and only one** option should be chosen in **each** of</P>
<P># the 3 following categories:</P>
<P>#</P>
<P># 1) name space (How C calls a Fortran 77 routine)</P>
<P>#</P>
<P># -DAdd_ : all lower case and a suffixed underscore (Suns,</P>
<P># Intel, ...), [default]</P>
<P># -DNoChange : all lower case (IBM RS6000),</P>
<P># -DUpCase : all upper case (Cray),</P>
<P># -DAdd__ : the FORTRAN compiler in use is f2c.</P>
<P>#</P>
<P># 2) C and Fortran 77 integer mapping</P>
<P>#</P>
<P># -DF77_INTEGER=int : Fortran 77 INTEGER is a C int, [default]</P>
<P># -DF77_INTEGER=long : Fortran 77 INTEGER is a C long,</P>
<P># -DF77_INTEGER=short : Fortran 77 INTEGER is a C short.</P>
<P>#</P>
<P># 3) Fortran 77 string handling</P>
<P>#</P>
<P># -DStringSunStyle : The string address is passed at the string loca-</P>
<P># tion on the stack, and the string length is then</P>
<P># passed as an F77_INTEGER after all explicit</P>
<P># stack arguments, [default]</P>
<P># -DStringStructPtr : The address of a structure is passed by a</P>
<P># Fortran 77 string, and the structure is of the</P>
<P># form: struct {char *cp; F77_INTEGER len;},</P>
<P># -DStringStructVal : A structure is passed by value for each Fortran</P>
<P># 77 string, and the structure is of the form:</P>
<P># struct {char *cp; F77_INTEGER len;},</P>
<P># -DStringCrayStyle : Special option for Cray machines, which uses</P>
<P># Cray fcd (fortran character descriptor) for</P>
<P># interoperation.</P>
<P>#</P>
<P>F2CDEFS =</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - HPL includes / libraries / specifics -------------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P>#</P>
<P>HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)</P>
<P>HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)</P>
<P>#</P>
<P># - Compile time options -----------------------------------------------</P>
<P>#</P>
<P># -DHPL_COPY_L force the copy of the panel L before bcast;</P>
<P># -DHPL_CALL_CBLAS call the cblas interface;</P>
<P># -DHPL_CALL_VSIPL call the vsip library;</P>
<P># -DHPL_DETAILED_TIMING enable detailed timers;</P>
<P>#</P>
<P># By default HPL will:</P>
<P># *) not copy L before broadcast,</P>
<P># *) call the BLAS Fortran 77 interface,</P>
<P># *) not display detailed timing information.</P>
<P>#</P>
<P>HPL_OPTS = -DHPL_CALL_CBLAS</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P>#</P>
<P>HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P>
<P># - Compilers / linkers - Optimization flags ---------------------------</P>
<P># ----------------------------------------------------------------------</P>
<P>#</P>
<P>CC = /usr/bin/gcc</P>
<P>CCNOOPT = $(HPL_DEFS)</P>
<P>CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops</P>
<P>#</P>
<P># On some platforms, it is necessary to use the Fortran linker to find</P>
<P># the Fortran internals used in the BLAS library.</P>
<P>#</P>
<P>LINKER = /usr/bin/g77</P>
<P>LINKFLAGS = $(CCFLAGS)</P>
<P>#</P>
<P>ARCHIVER = ar</P>
<P>ARFLAGS = r</P>
<P>RANLIB = echo</P>
<P>#</P>
<P># ----------------------------------------------------------------------</P></FONT></DIV>
!DSPAM:461c1a2419211745845678!

</body></html>