Gentlemen,

Thanks for the links.  The software is publically available (LIGGHTS is a DEM 
code based on LAMMPS).  Usually we just download the source, then reuse a 
makefile and load the intel clustertool suite (2016) and then run a simple 
build script that the chemist in charge has run. 

Here is the existing makefile:

# please run "module load intel/ics_2013.1.046" before using this.

SHELL = /bin/sh

# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler

CC =            mpiicc
CCFLAGS =       -O2
DEPFLAGS =      -M
LINK =          mpiicc
LINKFLAGS =     -O2 -static_mpi
LIB =           -lstdc++
ARCHIVE =       ar
ARFLAGS =       -rc
SIZE =          size

# ---------------------------------------------------------------------
# LAMMPS-specific settings
# specify settings for LAMMPS features you will use
# if you change any -D setting, do full re-compile after "make clean"

MPI_INC =       -DMPICH_SKIP_MPICXX
MPI_PATH =
MPI_LIB =       -lmpi

# FFT library, OPTIONAL

FFT_INC =       -DFFT_NONE
FFT_PATH =
FFT_LIB =

# ---------------------------------------------------------------------
# build rules and dependencies
# no need to edit this section

inclue  Makefile.package.settings
include Makefile.package

EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(NS_INC) 
$(VTK_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(NS_PATH) 
$(VTK_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(NS_LIB) $(VTK_LIB) 
$(PKG_SYSLIB)

# Link target

$(EXE): $(OBJ)
        $(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
        $(SIZE) $(EXE)

# Library target

lib:    $(OBJ)
        $(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)

# Compilation rules

%.o:%.cpp
        $(CC) $(CCFLAGS) $(EXTRA_INC) -c $<

%.d:%.cpp
        $(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@

# Individual dependencies

DEPENDS = $(OBJ:.o=.d)
sinclude $(DEPENDS)

And here is the existing build script:

module load intel/ics_2016.1.150

export SOURCEROOT=`pwd`
cd $SOURCEROOT
cp $SOURCEROOT/Makefile.cirrus $1/src/MAKE/
mkdir $1/src/Obj_cirrus
cp $1/src/*.h $1/src/Obj_cirrus
cp $1/src/*.cpp $1/src/Obj_cirrus
cd $1/src
make -j 4 cirrus

On 3/20/17, 12:44 PM, "[email protected] on behalf of Kenneth 
Hoste" <[email protected] on behalf of [email protected]> 
wrote:

    Hello Jay,
    
    On 20/03/2017 16:31, [email protected] wrote:
    > Hello,
    >
    > I'm an application engineer currently using Lmod on a RHEL 6.x cluster.  
I am
    > very interested in using EB to migrate some of the codes that I manage 
that
    > have a current build process.
    >
    > We have installed EB 3.1.0 and I am trying to migrate my first code.  I 
have
    > an existing makefile and a build script.  I have looked at the easyconfig 
list
    > but my code is not listed.
    >
    > Can someone point me to an example that I might be able to reference to 
get my
    > code (LIGGGHTS) up and running?
    >
    > I managed about 36 other codes that are mixture or COTS and Opensource.  
I am
    > very interested on working on getting as many as I can into EB.
    
    The first aspect to take into account is which build & install procedure 
    the software uses, since that determines which (generic) easyblock you 
    can use.
    An overview of the available generic easyblocks is available at 
    
http://easybuild.readthedocs.io/en/latest/version-specific/generic_easyblocks.html.
    
    A high-level overview of what needs to go in an easyconfig file is 
    available at 
    http://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html .
    
    If the software doesn't follow a standard procedure, you may need to 
    implement an accompanying easyblock as well, see 
    http://easybuild.readthedocs.io/en/latest/Implementing-easyblocks.html .
    
    As Jack already mentioned, the easyconfigs we already have can serve as 
    examples where relevant.
    If you're looking for examples of a particular easyblock, the search 
    function in the easyconfigs repository may come in handy, see 
    
https://github.com/hpcugent/easybuild-easyconfigs/search?utf8=%E2%9C%93&q=configuremake
 
    .
    
    While composing an easyconfig file, the extended dry run feature is 
    quite useful, since you can get a quick idea of the build & install 
    procedure that EasyBuild will be running using the provided easyconfig 
    file, see http://easybuild.readthedocs.io/en/latest/Extended_dry_run.html .
    
    And of course, if the software is publicly available, consider 
    contributing back the working easyconfig files, see 
    
http://easybuild.readthedocs.io/en/latest/Contributing.html#contributing-easyconfig-files
 
    .
    
    I hope this gives you enough the get started, don't hesitate to let us 
    know if you have any questions!
    
    
    regards,
    
    Kenneth
    
    
    >
    > Thanks,
    >
    > Jay Blair
    > Sr. Applications Engineer |  ASRC Federal Data Solutions
    > P&G HPC Account
    > o 513-698-7880 m 937-902-5719
    
    

Reply via email to