Index: head/sysutils/slurm-wlm/Makefile =================================================================== --- head/sysutils/slurm-wlm/Makefile (revision 560732) +++ head/sysutils/slurm-wlm/Makefile (revision 560733) @@ -1,136 +1,136 @@ # $FreeBSD$ PORTNAME= slurm DISTVERSION= 20.02.1 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= sysutils python MASTER_SITES= https://download.schedmd.com/slurm/ PKGNAMESUFFIX= -wlm MAINTAINER= jwb@FreeBSD.org COMMENT= Simple Linux Utility for Resource Management LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc powerpcspe NOT_FOR_ARCHS_REASON= 32-bit support is deprecated LIB_DEPENDS= libjson-c.so:devel/json-c \ libsysinfo.so:devel/libsysinfo \ libmunge.so:security/munge \ liblz4.so:archivers/liblz4 USES= compiler:c11 gmake gnome libtool lua pkgconfig python:build \ readline:port shebangfix ssl tar:bz2 USE_LDCONFIG= yes USE_PERL5= configure USE_RC_SUBR= slurmctld slurmd USERS= slurm GROUPS= ${USERS} GNU_CONFIGURE= yes INSTALL_TARGET= install-strip PLIST_SUB= PORTVERSION="${PORTVERSION}" SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI MYSQL RRD OPTIONS_DEFAULT= HDF5 HWLOC OPTIONS_SUB= yes CURL_DESC= Require cURL for elasticsearch plugins GUI_DESC= Build sview GUI config tool HDF5_DESC= Job profiling using HDF5 HWLOC_DESC= Portable hardware locality IPMI_DESC= IPMI energy consumption accounting RRD_DESC= RRD external sensor data collection DOCS_BUILD_DEPENDS= man2html:textproc/man2html CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CONFIGURE_WITH= libcurl GUI_USE= GNOME=cairo,gdkpixbuf2,glib20,gtk20 GUI_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 GUI_USES= gettext GUI_CONFIGURE_ENABLE= glibtest gtktest x11 # Neither of these work. See post-patch below. #GTK2_CONFIGURE_ENV_OFF= ac_gtk_test=no #GTK2_CONFIGURE_OFF= --disable-gtktest HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5 \ libsz.so:science/szip HDF5_CONFIGURE_WITH= hdf5 -HWLOC_LIB_DEPENDS= libhwloc.so:devel/hwloc +HWLOC_LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 HWLOC_CONFIGURE_WITH= hwloc IPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi IPMI_CONFIGURE_WITH= freeipmi MYSQL_USES= mysql MYSQL_CONFIGURE_OFF= --with-mysql_config=/nonexistent RRD_LIB_DEPENDS= librrd.so:databases/rrdtool RRD_CONFIGURE_WITH= rrdtool # --docdir is non-functional # CONFIGURE_ARGS= --docdir=${DOCSDIR} # FreeBSD Infiniband support is still experimental CONFIGURE_ARGS= --without-ofed DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}-${DISTVERSION} CFLAGS+= -I${WRKSRC}/slurm -I${LOCALBASE}/include -fcommon LDFLAGS+= -L${LOCALBASE}/lib -lsysinfo -lprocstat -fcommon # Hack around nonfunctional --disable-gtktest flag pre-configure-GUI-off: @${REINPLACE_CMD} -e 's|min_gtk_version=.*|min_gtk_version=2000.0.0|' \ ${WRKSRC}/configure # SLURM's configure enables interactive jobs if pty.h exists. Replacing # #include with appropriate headers will therefore not work, so instead # add a pty.h for the build. pre-configure: @${CP} ${FILESDIR}/pty.h ${WRKSRC}/slurm @${REINPLACE_CMD} -e 's|sched_setaffinity|cpuset_setaffinity|g' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|"/proc|"/compat/linux/proc|g' \ -e 's|(/proc)|(/compat/linux/proc)|g' \ ${WRKSRC}/src/slurmd/slurmstepd/req.c \ ${WRKSRC}/src/slurmd/slurmstepd/pdebug.c \ ${WRKSRC}/src/slurmd/common/xcpuinfo.c \ ${WRKSRC}/src/slurmd/common/xcgroup.c \ ${WRKSRC}/src/slurmd/common/set_oomadj.c \ ${WRKSRC}/src/slurmd/common/proctrack.c \ ${WRKSRC}/src/common/callerid.c \ ${WRKSRC}/src/plugins/task/affinity/affinity.c \ ${WRKSRC}/src/plugins/acct_gather_energy/rapl/acct_gather_energy_rapl.c \ ${WRKSRC}/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.c \ ${WRKSRC}/src/plugins/jobacct_gather/common/common_jag.c \ ${WRKSRC}/src/plugins/jobacct_gather/linux/jobacct_gather_linux.c \ ${WRKSRC}/src/plugins/switch/cray_aries/scaling.c \ ${WRKSRC}/src/plugins/proctrack/cray_aries/proctrack_cray_aries.c \ ${WRKSRC}/src/plugins/proctrack/cgroup/proctrack_cgroup.c \ ${WRKSRC}/src/plugins/proctrack/pgid/proctrack_pgid.c \ ${WRKSRC}/src/plugins/proctrack/linuxproc/kill_tree.c \ ${WRKSRC}/src/plugins/acct_gather_filesystem/lustre/acct_gather_filesystem_lustre.c \ ${WRKSRC}/src/plugins/node_features/knl_generic/node_features_knl_generic.c \ ${WRKSRC}/contribs/cray/pam_job.c @if ${WHICH} sbatch > /dev/null; then \ ${ECHO_CMD} "********************************************"; \ ${ECHO_CMD} "Build may fail while slurm-wlm is installed."; \ ${ECHO_CMD} "Deinstall slurm-wlm and run make again."; \ ${ECHO_CMD} "********************************************"; \ false; \ fi post-install: ${INSTALL_DATA} ${WRKSRC}/etc/slurm.conf.example \ ${STAGEDIR}${PREFIX}/etc/slurm.conf.sample .include Index: head/sysutils/slurm-wlm/files/patch-etc_slurm.conf.example =================================================================== --- head/sysutils/slurm-wlm/files/patch-etc_slurm.conf.example (revision 560732) +++ head/sysutils/slurm-wlm/files/patch-etc_slurm.conf.example (revision 560733) @@ -1,122 +1,123 @@ --- etc/slurm.conf.example.orig 2020-03-26 21:44:05 UTC +++ etc/slurm.conf.example -@@ -8,8 +8,8 @@ +@@ -8,8 +8,9 @@ # # See the slurm.conf man page for more information. # -ClusterName=linux -ControlMachine=linux0 -+ClusterName=beastie -+ControlMachine=beastie0 ++ClusterName=Beastie ++# Short hostname of the head node ++ControlMachine=head #ControlAddr= #BackupController= #BackupAddr= -@@ -25,8 +25,8 @@ StateSaveLocation=/var/spool/slurm/ctld +@@ -25,8 +26,8 @@ StateSaveLocation=/var/spool/slurm/ctld SlurmdSpoolDir=/var/spool/slurm/d SwitchType=switch/none MpiDefault=none -SlurmctldPidFile=/var/run/slurmctld.pid -SlurmdPidFile=/var/run/slurmd.pid +SlurmctldPidFile=/var/run/slurm/slurmctld.pid +SlurmdPidFile=/var/run/slurm/slurmd.pid ProctrackType=proctrack/pgid #PluginDir= #FirstJobId= -@@ -34,7 +34,7 @@ ReturnToService=0 +@@ -34,7 +35,7 @@ ReturnToService=0 #MaxJobCount= #PlugStackConfig= #PropagatePrioProcess= -#PropagateResourceLimits= -+PropagateResourceLimits=none ++PropagateResourceLimits=NONE #PropagateResourceLimitsExcept= #Prolog= #Epilog= -@@ -42,7 +42,9 @@ ReturnToService=0 +@@ -42,7 +43,9 @@ ReturnToService=0 #SrunEpilog= #TaskProlog= #TaskEpilog= -#TaskPlugin= +TaskPlugin=task/affinity +TaskPluginParam=cores +# For debugging: TaskPluginParam=cores,verbose #TrackWCKey=no #TreeWidth=50 #TmpFS= -@@ -57,10 +59,11 @@ KillWait=30 +@@ -57,10 +60,11 @@ KillWait=30 Waittime=0 # # SCHEDULING +DefMemPerCPU=256 SchedulerType=sched/backfill #SchedulerAuth= SelectType=select/cons_tres -SelectTypeParameters=CR_Core +SelectTypeParameters=CR_Core_Memory #PriorityType=priority/multifactor #PriorityDecayHalfLife=14-0 #PriorityUsageResetPeriod=14-0 -@@ -72,22 +75,58 @@ SelectTypeParameters=CR_Core +@@ -72,22 +76,58 @@ SelectTypeParameters=CR_Core # # LOGGING SlurmctldDebug=info -SlurmctldLogFile=/var/log/slurmctld.log +SlurmctldLogFile=/var/log/slurm/slurmctld SlurmdDebug=info -SlurmdLogFile=/var/log/slurmd.log +SlurmdLogFile=/var/log/slurm/slurmd JobCompType=jobcomp/none #JobCompLoc= # # ACCOUNTING -#JobAcctGatherType=jobacct_gather/linux +JobAcctGatherType=jobacct_gather/none #JobAcctGatherFrequency=30 # -#AccountingStorageType=accounting_storage/slurmdbd +AccountingStorageType=accounting_storage/filetxt +AccountingStorageLoc=/home/slurm/Accounting +AccountingStoreJobComment=YES #AccountingStorageHost= #AccountingStorageLoc= #AccountingStoragePass= #AccountingStorageUser= + +############################################################################ +# Enable power saving if remote IPMI power-on is available on compute nodes. +# If unavailable on some nodes, list them in SuspendExcNodes. +# SlurmUser must be a member of operator and wheel and have a valid +# login shell in order to execute shutdown on compute nodes. +# If you prefer to control power manually, see the following scripts +# from the SPCM port: # +# auto-ipmi-remote-power +# cluster-power-saver +# cluster-power-waster +# cluster-ipmi-power-on +############################################################################ + +# SuspendProgram=/usr/local/etc/spcm/slurm-node-suspend +# SuspendTime should be >= SuspendTimeout + ResumeTimeout. +# SuspendTime=600 +# SuspendTimeout=60 +# +# ResumeProgram=/usr/local/etc/spcm/slurm-node-resume +# ResumeTimeout=300 +# BatchStartTimeout=300 +# +# Exempt compute nodes that double as file servers or don't have IPMI +# remote power-on enabled. +# +# SuspendExcNodes=compute-001 + +# # COMPUTE NODES -NodeName=linux[1-32] Procs=1 State=UNKNOWN -PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP +# Set RealMemory < avail memory in /var/run/dmesg.boot +# Note that it may change slightly following freebsd-update -+# NodeName=compute-[001-032] Sockets=2 CoresPerSocket=6 RealMemory=30000 State=UNKNOWN ++NodeName=compute-[001-002] Sockets=2 CoresPerSocket=6 RealMemory=30000 State=UNKNOWN +# NodeName=compute-256g-[001-002] Sockets=2 CoresPerSocket=6 RealMemory=250000 State=UNKNOWN +# PartitionName=debug Nodes=ALL Default=NO MaxTime=INFINITE State=UP -+# PartitionName=batch Nodes=compute-[001-032] Default=YES MaxTime=INFINITE State=UP ++PartitionName=batch Nodes=compute-[001-002] Default=YES MaxTime=INFINITE State=UP +# PartitionName=256g Nodes=compute-256g-[001-002] Default=NO MaxTime=INFINITE State=UP