Compare commits
4 Commits
dfae78af71
...
437425e652
| Author | SHA1 | Date | |
|---|---|---|---|
| 437425e652 | |||
| 229c8c358d | |||
| 02cefd8fa9 | |||
| 27655dc1b8 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1 @@
|
|||||||
cleanup-volume-claim.sh
|
cleanup-volume-claim.sh
|
||||||
build.sh
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package recreationaltech.plugin
|
package recreationaltech.plugin
|
||||||
|
|
||||||
import groovy.transform.CompileDynamic
|
import groovy.transform.CompileDynamic
|
||||||
|
import recreationaltech.plugin.strategies.K8sDVFSFrequencyBandsSchedulingStrategy
|
||||||
import recreationaltech.plugin.strategies.K8sDVFSSchedulingStrategy
|
import recreationaltech.plugin.strategies.K8sDVFSSchedulingStrategy
|
||||||
import recreationaltech.plugin.strategies.K8sHashSchedulingStrategy
|
import recreationaltech.plugin.strategies.K8sHashSchedulingStrategy
|
||||||
|
|
||||||
@@ -137,12 +138,11 @@ class K8sExecutor extends Executor implements ExtensionPoint {
|
|||||||
ips[i] = client.getNodeExternalIp(nodes[i])
|
ips[i] = client.getNodeExternalIp(nodes[i])
|
||||||
log.info "[K8s] node ${nodes[i]} -> ${ips[i]}"
|
log.info "[K8s] node ${nodes[i]} -> ${ips[i]}"
|
||||||
}
|
}
|
||||||
strategy = new K8sDVFSSchedulingStrategy(this.runtimeEstimator,
|
strategy = new K8sDVFSFrequencyBandsSchedulingStrategy(this.runtimeEstimator,
|
||||||
new K8sDVFSClient(nodes, ips),
|
new K8sDVFSClient(nodes, ips),
|
||||||
() -> getClient(),
|
() -> getClient(),
|
||||||
k8sConfig.runtimeComparisonEpsilon,
|
k8sConfig.runtimeComparisonEpsilon,
|
||||||
k8sConfig.dvfsSchedulingNumTopRuntimes)
|
k8sConfig.dvfsSchedulingNumTopRuntimes)
|
||||||
strategy.fullSpeedMode = false
|
|
||||||
} else {
|
} else {
|
||||||
log.error "[K8s] invalid scheduling strategy $k8sConfig.schedulingStrategy, falling back on \"Hash\""
|
log.error "[K8s] invalid scheduling strategy $k8sConfig.schedulingStrategy, falling back on \"Hash\""
|
||||||
strategy = new K8sHashSchedulingStrategy()
|
strategy = new K8sHashSchedulingStrategy()
|
||||||
|
|||||||
1
sarek/.gitignore
vendored
Normal file
1
sarek/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*.fastq.gz
|
||||||
3
sarek/clean.sh
Normal file
3
sarek/clean.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
rm -rf out work .nextflow .nextflow.log .nextflow.log.* measurements
|
||||||
24
sarek/nextflow-k8s.config
Normal file
24
sarek/nextflow-k8s.config
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
workDir = '/workspace'
|
||||||
|
|
||||||
|
process {
|
||||||
|
executor = 'k8s'
|
||||||
|
//container = 'ubuntu:22.04'
|
||||||
|
|
||||||
|
pod = [
|
||||||
|
imagePullPolicy: 'IfNotPresent'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
k8s {
|
||||||
|
namespace = 'trogantk'
|
||||||
|
|
||||||
|
storageClaimName = 'cephfs-trogantk'
|
||||||
|
storageMountPath = '/workspace'
|
||||||
|
launchDir = '/workspace/launch'
|
||||||
|
projectDir = '/workspace/projects'
|
||||||
|
cleanup = true
|
||||||
|
|
||||||
|
pod = [
|
||||||
|
nodeSelector: [usedby: 'trogantk']
|
||||||
|
]
|
||||||
|
}
|
||||||
41
sarek/nextflow.config
Normal file
41
sarek/nextflow.config
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
plugins {
|
||||||
|
id 'k8s-dvfs@0.1.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
workDir = '/workspace'
|
||||||
|
|
||||||
|
process {
|
||||||
|
executor = 'k8s-dvfs'
|
||||||
|
//container = 'ubuntu:22.04'
|
||||||
|
|
||||||
|
pod = [
|
||||||
|
imagePullPolicy: 'IfNotPresent'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
k8s {
|
||||||
|
namespace = 'trogantk'
|
||||||
|
|
||||||
|
storageClaimName = 'cephfs-trogantk'
|
||||||
|
storageMountPath = '/workspace'
|
||||||
|
launchDir = '/workspace/launch'
|
||||||
|
projectDir = '/workspace/projects'
|
||||||
|
cleanup = true
|
||||||
|
|
||||||
|
imagePullPolicy = 'IfNotPresent'
|
||||||
|
schedulerInterval = '1m'
|
||||||
|
recordTaskRuntimes = false
|
||||||
|
schedulingStrategy = 'DVFS'
|
||||||
|
runtimeComparisonEpsilon = '10s'
|
||||||
|
dvfsSchedulingNumTopRuntimes = 3
|
||||||
|
nodeLabel = 'usedby=trogantk'
|
||||||
|
|
||||||
|
nodeInit {
|
||||||
|
enabled = true
|
||||||
|
image = 'gitea.kleine.eulenhexe.de/kevin/ma/dvfs-agent:0.2.0'
|
||||||
|
command = ['/usr/local/bin/agent']
|
||||||
|
wait = 'Running'
|
||||||
|
cleanup = true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
30
sarek/run-k8s.sh
Normal file
30
sarek/run-k8s.sh
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Usage: $0 <size: 1 or 3> <logfile-outname>"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
SIZE=$1
|
||||||
|
LOGOUT=$2
|
||||||
|
|
||||||
|
TESTDATA_ARCHIVE=/root/sarek-testdata.tar.gz
|
||||||
|
|
||||||
|
MYDIR=$(pwd)
|
||||||
|
|
||||||
|
mkdir -p /workspace/sarek
|
||||||
|
mkdir -p /workspace/launch/work
|
||||||
|
cp nextflow-k8s.config /workspace/sarek/nextflow-k8s.config
|
||||||
|
cp runtimes.csv /workspace/launch/work/runtimes.csv
|
||||||
|
cp samplesheet${SIZE}.csv /workspace/launch/samplesheet.csv
|
||||||
|
cp samplesheet${SIZE}.csv /workspace/sarek/samplesheet.csv
|
||||||
|
|
||||||
|
cd /workspace/launch
|
||||||
|
tar xzf ${TESTDATA_ARCHIVE}
|
||||||
|
|
||||||
|
cd /workspace/sarek
|
||||||
|
time nextflow run -c nextflow-k8s.config nf-core/sarek -r 3.9.0 -profile docker --genome GRCm38 --input samplesheet.csv --outdir out --skip_tools multiqc
|
||||||
|
rm -rf out
|
||||||
|
cp .nextflow.log /${LOGOUT}
|
||||||
|
|
||||||
|
cd ${MYDIR}
|
||||||
|
rm -rf /workspace/*
|
||||||
30
sarek/run.sh
Normal file
30
sarek/run.sh
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Usage: $0 <size: 1 or 3> <logfile-outname>"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
SIZE=$1
|
||||||
|
LOGOUT=$2
|
||||||
|
|
||||||
|
TESTDATA_ARCHIVE=/root/sarek-testdata.tar.gz
|
||||||
|
|
||||||
|
MYDIR=$(pwd)
|
||||||
|
|
||||||
|
mkdir -p /workspace/sarek
|
||||||
|
mkdir -p /workspace/launch/work
|
||||||
|
cp nextflow.config /workspace/sarek/nextflow.config
|
||||||
|
cp runtimes.csv /workspace/launch/work/runtimes.csv
|
||||||
|
cp samplesheet${SIZE}.csv /workspace/launch/samplesheet.csv
|
||||||
|
cp samplesheet${SIZE}.csv /workspace/sarek/samplesheet.csv
|
||||||
|
|
||||||
|
cd /workspace/launch
|
||||||
|
tar xzf ${TESTDATA_ARCHIVE}
|
||||||
|
|
||||||
|
cd /workspace/sarek
|
||||||
|
time nextflow run -c nextflow.config nf-core/sarek -r 3.9.0 -profile docker --genome GRCm38 --input samplesheet.csv --outdir out --skip_tools multiqc
|
||||||
|
rm -rf out
|
||||||
|
cp .nextflow.log /${LOGOUT}
|
||||||
|
|
||||||
|
cd ${MYDIR}
|
||||||
|
rm -rf /workspace/*
|
||||||
2
sarek/samplesheet1.csv
Normal file
2
sarek/samplesheet1.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
patient,sample,lane,fastq_1,fastq_2
|
||||||
|
ID1,S1,L001,SRR27016609_1.fastq.gz,SRR27016609_2.fastq.gz
|
||||||
|
4
sarek/samplesheet3.csv
Normal file
4
sarek/samplesheet3.csv
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
patient,sample,lane,fastq_1,fastq_2
|
||||||
|
ID1,S1,L001,SRR27016609_1.fastq.gz,SRR27016609_2.fastq.gz
|
||||||
|
ID1,S2,L001,SRR27016607_1.fastq.gz,SRR27016607_2.fastq.gz
|
||||||
|
ID1,S3,L001,SRR27016605_1.fastq.gz,SRR27016605_2.fastq.gz
|
||||||
|
Reference in New Issue
Block a user