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