diff --git a/k8s-dvfs/src/main/groovy/recreationaltech/plugin/K8sExecutor.groovy b/k8s-dvfs/src/main/groovy/recreationaltech/plugin/K8sExecutor.groovy index 30d9fc2..250fd97 100644 --- a/k8s-dvfs/src/main/groovy/recreationaltech/plugin/K8sExecutor.groovy +++ b/k8s-dvfs/src/main/groovy/recreationaltech/plugin/K8sExecutor.groovy @@ -17,6 +17,7 @@ package recreationaltech.plugin import groovy.transform.CompileDynamic +import recreationaltech.plugin.strategies.K8sDVFSFrequencyBandsSchedulingStrategy import recreationaltech.plugin.strategies.K8sDVFSSchedulingStrategy import recreationaltech.plugin.strategies.K8sHashSchedulingStrategy @@ -137,12 +138,11 @@ class K8sExecutor extends Executor implements ExtensionPoint { ips[i] = client.getNodeExternalIp(nodes[i]) log.info "[K8s] node ${nodes[i]} -> ${ips[i]}" } - strategy = new K8sDVFSSchedulingStrategy(this.runtimeEstimator, + strategy = new K8sDVFSFrequencyBandsSchedulingStrategy(this.runtimeEstimator, new K8sDVFSClient(nodes, ips), () -> getClient(), k8sConfig.runtimeComparisonEpsilon, k8sConfig.dvfsSchedulingNumTopRuntimes) - strategy.fullSpeedMode = false } else { log.error "[K8s] invalid scheduling strategy $k8sConfig.schedulingStrategy, falling back on \"Hash\"" strategy = new K8sHashSchedulingStrategy() diff --git a/sarek-1/.gitignore b/sarek-1/.gitignore new file mode 100644 index 0000000..d168c92 --- /dev/null +++ b/sarek-1/.gitignore @@ -0,0 +1 @@ +*.fastq.gz diff --git a/sarek-1/clean.sh b/sarek-1/clean.sh new file mode 100644 index 0000000..b55a314 --- /dev/null +++ b/sarek-1/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +rm -rf out work .nextflow .nextflow.log .nextflow.log.* measurements diff --git a/sarek-1/nextflow.config b/sarek-1/nextflow.config new file mode 100644 index 0000000..19aa1ce --- /dev/null +++ b/sarek-1/nextflow.config @@ -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 + } + +} diff --git a/sarek-1/run.sh b/sarek-1/run.sh new file mode 100644 index 0000000..64acba2 --- /dev/null +++ b/sarek-1/run.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +cp samplesheet.csv /workspace/launch/samplesheet.csv +cp *.fastq.gz /workspace/launch/. +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 diff --git a/sarek-1/samplesheet.csv b/sarek-1/samplesheet.csv new file mode 100644 index 0000000..ba09e48 --- /dev/null +++ b/sarek-1/samplesheet.csv @@ -0,0 +1,2 @@ +patient,sample,lane,fastq_1,fastq_2 +ID1,S1,L001,SRR27016609_1.fastq.gz,SRR27016609_2.fastq.gz