-
Notifications
You must be signed in to change notification settings - Fork 706
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #17639 from lexming/20230401113716_new_pr_SoPlex221
{math}[GCC/11.3.0] SoPlex v2.2.1, ZIMPL v3.3.4, SCIP v3.2.1, GOBNILP v1.6.3
- Loading branch information
Showing
6 changed files
with
321 additions
and
0 deletions.
There are no files selected for viewing
63 changes: 63 additions & 0 deletions
63
easybuild/easyconfigs/g/GOBNILP/GOBNILP-1.6.3-GCC-11.3.0.eb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
easyblock = 'Bundle' | ||
|
||
name = 'GOBNILP' | ||
version = '1.6.3' | ||
_nodots_version = version.replace('.', '') | ||
_scip_version = '3.2.1' | ||
_scip_nodots_version = _scip_version.replace('.', '') | ||
|
||
homepage = 'https://www.cs.york.ac.uk/aig/sw/gobnilp/' | ||
description = """GOBNILP (Globally Optimal Bayesian Network learning using Integer Linear | ||
Programming) is a C program which learns Bayesian networks from complete | ||
discrete data or from local scores.""" | ||
|
||
toolchain = {'name': 'GCC', 'version': '11.3.0'} | ||
|
||
dependencies = [ | ||
('SCIP', _scip_version), | ||
('ZIMPL', '3.3.4'), | ||
('SoPlex', '2.2.1'), | ||
('GMP', '6.2.1'), | ||
('libreadline', '8.1'), | ||
('ncurses', '6.3'), | ||
('zlib', '1.2.12'), | ||
] | ||
|
||
default_easyblock = 'MakeCp' | ||
|
||
components = [ | ||
('LOP', _scip_version, { | ||
'source_urls': ['https://github.com/scipopt/scip/archive/refs/tags/'], | ||
'sources': ['v%s.tar.gz' % _scip_nodots_version], | ||
'patches': ['LOP-%(version)s_standalone-scip-lop-build.patch'], | ||
'checksums': [ | ||
{'v321.tar.gz': | ||
'015bdda4e681782fd03b61421b93aa3c1b913e5eea18bb8730d5fb9e4d67b4cb'}, | ||
{'LOP-3.2.1_standalone-scip-lop-build.patch': | ||
'f996e56f1311fa4a613635b38969da731faf0ea9f10097799b1fa9a84598651e'}, | ||
], | ||
'start_dir': 'scip-%s/examples/%%(name)s' % _scip_nodots_version, | ||
'buildopts': '%(namelower)s COMP=gnu OPT=opt LPS=spx2', | ||
'files_to_copy': [(['bin/%(namelower)s'], 'bin')], | ||
}), | ||
(name, version, { | ||
'source_urls': ['http://www.cs.york.ac.uk/aig/sw/gobnilp'], | ||
'sources': ['%(namelower)s%(version)s.tar.gz'], | ||
'patches': ['%(name)s-%(version)s_use-eb-build-env.patch'], | ||
'checksums': [ | ||
{'gobnilp1.6.3.tar.gz': | ||
'b31e5c87032f85f7404654beca47d472fd6c5dd7a5f82108bd5043ff0b8fa33c'}, | ||
{'GOBNILP-1.6.3_use-eb-build-env.patch': | ||
'9235ec8b9d05d9915f9961d4b46c2220e0d3b75f555a226a5667dcc69d76dae9'}, | ||
], | ||
'start_dir': '%(namelower)s' + _nodots_version, | ||
'files_to_copy': [(['bin/%(namelower)s'], 'bin')], | ||
}), | ||
] | ||
|
||
sanity_check_paths = { | ||
'files': ['bin/gobnilp', 'bin/lop'], | ||
'dirs': [], | ||
} | ||
|
||
moduleclass = 'math' |
79 changes: 79 additions & 0 deletions
79
easybuild/easyconfigs/g/GOBNILP/GOBNILP-1.6.3_use-eb-build-env.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
Use build environment and dependencies from EasyBuild | ||
author: Alex Domingo (Vrije Universiteit Brussel) | ||
--- Makefile.orig 2023-03-31 18:33:07.943785000 +0200 | ||
+++ Makefile 2023-03-31 18:42:53.636293000 +0200 | ||
@@ -5,15 +5,25 @@ | ||
# This file was created by editing the Makefile for the linear ordering | ||
# example in SCIP | ||
|
||
-# Set the path the SCIP directory | ||
-SCIPDIR = scip | ||
- | ||
-# Include default project Makefile from SCIP | ||
-include $(SCIPDIR)/make/make.project | ||
+# Set paths and flags to SCIP libraries | ||
+SCIPDIR = $(EBROOTSCIP) | ||
+SCIPLIB = scip | ||
+OBJSCIPLIB = objscip | ||
+LPILIB = lpispx2 | ||
+NLPILIB = nlpi.cppad | ||
+LPSLDFLAGS = -lzimpl -lsoplex -lgmp -lreadline -lncurses -lz | ||
+ | ||
+# Set paths to LOP | ||
+LOPSRC = ../scip-321/examples/LOP/src | ||
+LOPOBJ = ../scip-321/examples/LOP/obj/cons_linearordering.o | ||
|
||
# This missing for scip < 3 | ||
VALGRIND = false | ||
|
||
+SRCDIR = src | ||
+OBJDIR = obj | ||
+BINDIR = bin | ||
+ | ||
# Declare the phony targets | ||
.PHONY: all doxygen manual pedmanual gobnilp clean test | ||
|
||
@@ -46,7 +57,7 @@ | ||
MAINSRC = $(wildcard $(SRCDIR)/*.c) | ||
MAINOBJ = $(notdir $(MAINSRC:.c=.o)) | ||
|
||
-MAIN = $(MAINNAME).$(BASE).$(LPS)$(EXEEXTENSION) | ||
+MAIN = $(MAINNAME) | ||
MAINFILE = $(BINDIR)/$(MAIN) | ||
ifeq ($(OSTYPE),mingw) | ||
MAINSHORTLINK = $(BINDIR)/$(MAINNAME).exe | ||
@@ -63,7 +74,7 @@ | ||
LATEXCMD = @pdflatex -halt-on-error -interaction=errorstopmode | ||
|
||
#Needs to appear first so that "make" makes gobnilp | ||
-gobnilp: $(SCIP) $(MAINFILE) $(MAINSHORTLINK) | ||
+gobnilp: $(MAINFILE) $(MAINSHORTLINK) | ||
|
||
#----------------------------------------------------------------------- | ||
#---------------------------- All ---------------------------- | ||
@@ -161,19 +172,16 @@ | ||
|
||
$(MAINSHORTLINK): $(MAINFILE) | ||
@rm -f $@ | ||
- @cd $(dir $@) && ln -s $(notdir $(MAINFILE)) $(notdir $@) | ||
|
||
-$(MAINFILE): $(BINDIR) $(OBJDIR) $(SCIPLIBFILE) $(LPILIBFILE) $(NLPILIBFILE) $(MAINOBJFILES) | ||
- @echo "-> linking $@" | ||
- @$(LINKCXX) $(STATICFLAG) $(MAINOBJFILES) \ | ||
- $(LINKCXX_L)$(SCIPDIR)/lib $(LINKCXX_l)$(SCIPLIB)$(LINKLIBSUFFIX) \ | ||
- $(LINKCXX_l)$(OBJSCIPLIB)$(LINKLIBSUFFIX) $(LINKCXX_l)$(LPILIB)$(LINKLIBSUFFIX) $(LINKCXX_l)$(NLPILIB)$(LINKLIBSUFFIX) \ | ||
- $(OFLAGS) $(LPSLDFLAGS) \ | ||
- $(LDFLAGS) $(LINKCXX_o)$@ | ||
+$(MAINFILE): $(BINDIR) $(OBJDIR) $(MAINOBJFILES) | ||
+ echo "-> linking $@" | ||
+ $(CXX) -static $(MAINOBJFILES) $(LOPOBJ) \ | ||
+ -L$(SCIPDIR)/lib -l$(SCIPLIB) -l$(OBJSCIPLIB) -l$(LPILIB) -l$(NLPILIB) \ | ||
+ $(LDFLAGS) $(LPSLDFLAGS) -o $@ | ||
|
||
$(OBJDIR)/%.o: $(SRCDIR)/%.c | ||
@echo "-> compiling $*.c" | ||
- @$(CC) $(FLAGS) $(OFLAGS) $(BINOFLAGS) $(CFLAGS) -c -g $< $(CC_o)$@ | ||
+ @$(CC) $(CFLAGS) $(CPPFLAGS) -I$(LOPSRC) -c -g $< -o $@ | ||
|
||
$(OBJDIR): | ||
@-mkdir -p $(OBJDIR) |
41 changes: 41 additions & 0 deletions
41
easybuild/easyconfigs/g/GOBNILP/LOP-3.2.1_standalone-scip-lop-build.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
Build LOP example standalone without triggering a full build of SCIP | ||
author: Alex Domingo (Vrije Universiteit Brussel) | ||
--- Makefile.orig 2023-03-31 18:52:55.793723000 +0200 | ||
+++ Makefile 2023-03-31 18:54:59.590029000 +0200 | ||
@@ -29,6 +29,7 @@ | ||
#----------------------------------------------------------------------------- | ||
|
||
include $(SCIPDIR)/make/make.project | ||
+OBJDIR = obj | ||
|
||
#----------------------------------------------------------------------------- | ||
# Main Program | ||
@@ -39,9 +40,9 @@ | ||
MAINSRC = $(addprefix $(SRCDIR)/,$(MAINOBJ:.o=.c)) | ||
MAINDEP = $(SRCDIR)/depend.cmain.$(OPT) | ||
|
||
-MAIN = $(MAINNAME).$(BASE).$(LPS)$(EXEEXTENSION) | ||
+MAIN = $(MAINNAME) | ||
MAINFILE = $(BINDIR)/$(MAIN) | ||
-MAINSHORTLINK = $(BINDIR)/$(MAINNAME) | ||
+MAINSHORTLINK = $(MAINNAME) | ||
MAINOBJFILES = $(addprefix $(OBJDIR)/,$(MAINOBJ)) | ||
|
||
#----------------------------------------------------------------------------- | ||
@@ -79,7 +80,6 @@ | ||
|
||
$(MAINSHORTLINK): $(MAINFILE) | ||
@rm -f $@ | ||
- cd $(dir $@) && ln -s $(notdir $(MAINFILE)) $(notdir $@) | ||
|
||
$(OBJDIR): | ||
@-mkdir -p $(OBJDIR) | ||
@@ -123,7 +123,7 @@ | ||
|
||
|
||
# main target | ||
-$(MAINFILE): $(BINDIR) $(OBJDIR) $(SCIPLIBFILE) $(LPILIBFILE) $(NLPILIBFILE) $(MAINOBJFILES) | ||
+$(MAINFILE): $(BINDIR) $(OBJDIR) $(MAINOBJFILES) | ||
@echo "-> linking $@" | ||
ifeq ($(VERBOSE),true) | ||
$(LINKCXX) $(MAINOBJFILES) \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
easyblock = 'ConfigureMake' | ||
|
||
name = 'SCIP' | ||
version = '3.2.1' | ||
|
||
homepage = 'https://www.scipopt.org/' | ||
description = """SCIP is currently one of the fastest non-commercial solvers for mixed integer | ||
programming (MIP) and mixed integer nonlinear programming (MINLP). It is also a | ||
framework for constraint integer programming and branch-cut-and-price. It | ||
allows for total control of the solution process and the access of detailed | ||
information down to the guts of the solver.""" | ||
|
||
toolchain = {'name': 'GCC', 'version': '11.3.0'} | ||
|
||
github_account = 'scipopt' | ||
source_urls = [GITHUB_SOURCE] | ||
sources = ['v%s.tar.gz' % version.replace('.', '')] | ||
checksums = ['015bdda4e681782fd03b61421b93aa3c1b913e5eea18bb8730d5fb9e4d67b4cb'] | ||
|
||
dependencies = [ | ||
('SoPlex', '2.2.1'), | ||
('ZIMPL', '3.3.4'), | ||
('GMP', '6.2.1'), | ||
('libreadline', '8.1'), | ||
('zlib', '1.2.12'), | ||
] | ||
|
||
skipsteps = ['configure'] | ||
|
||
# prepare symlinks to installation files of dependencies | ||
prebuildopts = 'mkdir -p lib && ' | ||
prebuildopts += 'ln -sf "$EBROOTSOPLEX/include" "lib/spxinc" && ' | ||
prebuildopts += 'ln -sf "$EBROOTZIMPL/include" "lib/zimplinc" && ' | ||
prebuildopts += 'for lib in "$EBROOTSOPLEX/lib/libsoplex*.a"; do ln -sf "$lib" "lib/"; done && ' | ||
prebuildopts += 'for lib in "$EBROOTZIMPL/lib/libzimpl*.a"; do ln -sf "$lib" "lib/"; done && ' | ||
|
||
# use SoPlex v2 as LP solver | ||
buildopts = 'LPS=spx2 ' | ||
buildopts += 'MAKESOFTLINKS=false COMP=gnu OPT=opt ' | ||
|
||
installopts = 'INSTALLDIR="%(installdir)s" ' | ||
installopts += buildopts | ||
|
||
postinstallcmds = [ | ||
# add extra headers to installation directory | ||
'cp "src/scip/misc.h" "%(installdir)s/include/scip/"', | ||
# copy examples folder | ||
'cp -r "examples" "%(installdir)s/"', | ||
] | ||
|
||
sanity_check_paths = { | ||
'files': ['bin/scip', 'lib/liblpispx2.a', 'lib/libnlpi.cppad.a', 'lib/libobjscip.a', 'lib/libscip.a'], | ||
'dirs': ['examples', 'include'], | ||
} | ||
|
||
sanity_check_commands = ["scip -h"] | ||
|
||
moduleclass = 'math' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
easyblock = 'ConfigureMake' | ||
|
||
name = 'SoPlex' | ||
version = '2.2.1' | ||
|
||
homepage = 'https://soplex.zib.de/' | ||
description = """SoPlex is an optimization package for solving linear programming problems (LPs) | ||
based on an advanced implementation of the primal and dual revised simplex | ||
algorithm. It provides special support for the exact solution of LPs with | ||
rational input data. It can be used as a standalone solver reading MPS or LP | ||
format files via a command line interface as well as embedded into other | ||
programs via a C++ class library.""" | ||
|
||
toolchain = {'name': 'GCC', 'version': '11.3.0'} | ||
|
||
github_account = 'scipopt' | ||
source_urls = [GITHUB_SOURCE] | ||
sources = ['release-%s.tar.gz' % version.replace('.', '')] | ||
checksums = ['6c2e89cd7c8910f8989f2a860fa0446641bd16d76eb87872f70974838486c9b1'] | ||
|
||
dependencies = [ | ||
('GMP', '6.2.1'), | ||
('zlib', '1.2.12'), | ||
] | ||
|
||
skipsteps = ['configure'] | ||
|
||
buildopts = "COMP=gnu OPT=opt" | ||
installopts = "INSTALLDIR=%(installdir)s" | ||
|
||
sanity_check_paths = { | ||
'files': ['bin/soplex', 'lib/libsoplex.a'], | ||
'dirs': ['include'], | ||
} | ||
|
||
sanity_check_commands = ["soplex | grep -q '%(name)s version %(version)s'"] | ||
|
||
moduleclass = 'math' |
42 changes: 42 additions & 0 deletions
42
easybuild/easyconfigs/z/ZIMPL/ZIMPL-3.3.4-GCCcore-11.3.0.eb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
easyblock = 'MakeCp' | ||
|
||
name = 'ZIMPL' | ||
version = '3.3.4' | ||
|
||
homepage = 'https://zimpl.zib.de/' | ||
description = """ZIMPL is a little language to translate the mathematical model of a problem | ||
into a linear or nonlinear (mixed-) integer mathematical program expressed in | ||
.lp or .mps file format which can be read and (hopefully) solved by a LP or MIP | ||
solver.""" | ||
|
||
toolchain = {'name': 'GCCcore', 'version': '11.3.0'} | ||
|
||
github_account = 'scipopt' | ||
source_urls = ['https://zimpl.zib.de/download/'] | ||
sources = [SOURCELOWER_TGZ] | ||
checksums = ['3362fb21524df459723d23f6e0c122ebdd684153a9cc991a2c7f5b2752a83eb2'] | ||
|
||
builddependencies = [ | ||
('binutils', '2.38'), | ||
] | ||
|
||
dependencies = [ | ||
('GMP', '6.2.1'), | ||
('zlib', '1.2.12'), | ||
] | ||
|
||
files_to_copy = ['bin', 'lib', (['src/*.h'], 'include/zimpl')] | ||
|
||
postinstallcmds = [ | ||
"cd %(installdir)s/bin && ln -sf zimpl-%(version)s.* zimpl", | ||
"cd %(installdir)s/lib && ln -sf libzimpl-%(version)s.*.a libzimpl.a", | ||
] | ||
|
||
sanity_check_paths = { | ||
'files': ['bin/zimpl', 'lib/libzimpl.a'], | ||
'dirs': ['include/zimpl'], | ||
} | ||
|
||
sanity_check_commands = ["zimpl -h"] | ||
|
||
moduleclass = 'math' |