diff --git a/experiments/batch/cuda-singleblock b/experiments/batch/cuda-singleblock new file mode 100644 index 0000000..5a235ee --- /dev/null +++ b/experiments/batch/cuda-singleblock @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +#SBATCH --job-name=cuda-singleblock +# Forschergruppe Schug +#SBATCH --account=hkf6 +# 48 Cores, 512GiB RAM, 4x NVIDIA A100 GPUs +#SBATCH --partition=booster +# Right now we're using a single node +#SBATCH --nodes=1 +# Number of MPI processes +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=1 +# For now, we are using a single GPU only +#SBATCH --gres=gpu:1 +#SBATCH --time=01:00:00 +#SBATCH --output=logs/cuda-singleblock-%j.log +#SBATCH --error=logs/cuda-singleblock-%j.log + +SOURCE_DIR=/p/project/cellsinsilico/paulslustigebude +OUTPUT_DIR=/p/scratch/cellsinsilico/paul/nastja-out/cuda-singleblock + +mkdir -p "${OUTPUT_DIR}" +source "${SOURCE_DIR}/activate-nastja-modules" + +# This is actually the default behavior for a single task anyways +# However I'm leaving this here for documentation reasons +export CUDA_VISIBLE_DEVICES=0 + +srun "${SOURCE_DIR}/nastja/build-cuda/nastja" \ + -c "${SOURCE_DIR}/ma/experiments/configs/genesis-singleblock.json" \ + -o "${OUTPUT_DIR}" diff --git a/experiments/batch/ecm-debug b/experiments/batch/ecm-debug new file mode 100644 index 0000000..8751b5e --- /dev/null +++ b/experiments/batch/ecm-debug @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +#SBATCH --job-name=ecm-debug +# Forschergruppe Schug +#SBATCH --account=hkf6 +# 48 Cores, 512GiB RAM, 4x NVIDIA A100 GPUs +#SBATCH --partition=booster +#SBATCH --nodes=1 +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=1 +# For now, we are using a single GPU only +#SBATCH --gres=gpu:1 +#SBATCH --time=00:10:00 +#SBATCH --output=logs/ecm-debug-%j.log +#SBATCH --error=logs/ecm-debug-%j.log + +SOURCE_DIR=/p/project/cellsinsilico/paulslustigebude +OUTPUT_DIR=/p/scratch/cellsinsilico/paul/nastja-out/ecm-debug + +mkdir -p "${OUTPUT_DIR}" +source "${SOURCE_DIR}/activate-nastja-modules" + +# This is actually the default behavior for a single task anyways +# However I'm leaving this here for documentation reasons +export CUDA_VISIBLE_DEVICES=0 + +srun "${SOURCE_DIR}/nastja/build-cuda/nastja" \ + -c "${SOURCE_DIR}/ma/experiments/configs/ecm-debug.json" \ + -o "${OUTPUT_DIR}" diff --git a/experiments/batch/nocuda-singleblock b/experiments/batch/nocuda-singleblock new file mode 100644 index 0000000..3fd9976 --- /dev/null +++ b/experiments/batch/nocuda-singleblock @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +#SBATCH --job-name=nocuda-singleblock +# Forschergruppe Schug +#SBATCH --account=hkf6 +# 48 Cores, 512GiB RAM, 4x NVIDIA A100 GPUs +#SBATCH --partition=booster +# Right now we're using a single node +#SBATCH --nodes=1 +# Number of MPI processes +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=1 +# For now, we are using a single GPU only +#SBATCH --time=01:00:00 +#SBATCH --output=logs/nocuda-singleblock-%j.log +#SBATCH --error=logs/nocuda-singleblock-%j.log + +SOURCE_DIR=/p/project/cellsinsilico/paulslustigebude +OUTPUT_DIR=/p/scratch/cellsinsilico/paul/nastja-out/nocuda-singleblock + +mkdir -p "${OUTPUT_DIR}" +source "${SOURCE_DIR}/activate-nastja-modules" + +srun "${SOURCE_DIR}/nastja/build-nocuda/nastja" \ + -c "${SOURCE_DIR}/ma/experiments/configs/genesis-singleblock.json" \ + -o "${OUTPUT_DIR}" diff --git a/experiments/configs/ecm-debug.json b/experiments/configs/ecm-debug.json new file mode 100644 index 0000000..17425d1 --- /dev/null +++ b/experiments/configs/ecm-debug.json @@ -0,0 +1,88 @@ +{ + "#Testing": { + "description": "Just dynamic ECM for debugging" + }, + "Application": "Cells", + "Geometry": { + "blocksize": [5, 5, 5], + "blockcount": [1, 1, 1] + }, + "Settings": { + "timesteps": 10, + "randomseed": 42 + }, + "Filling": { + "cells": [ + { + "_comment": "This is for the dynamic ECM", + "shape": "cube", + "box": [ + [0, 0, 0], + [4, 4, 4] + ], + "value": 0, + "celltype": 0 + } + ] + }, + "CellsInSilico": { + "liquid": 1, + "adhesion": { + "matrix": [ + [0, 0, 0, 0], + [0, 0, 0, 0], + [0, 0, 10, 5], + [0, 0, 5, 5] + ] + }, + "temperature": 15, + "volume": { + "default": [0, 0, 7000, 1000], + "lambda": { + "storage": "const", + "value": 10 + } + }, + "surface": { + "default": [0, 0, 2500, 1000], + "lambda": { + "storage": "const", + "value": 10 + } + }, + "checkerboard": "00", + "energyfunctions": ["Volume00", "Surface00", "Adhesion00", "DynamicECM00"], + "dynamicecm": { + "enabled": true, + "stepsPerMcs": 1, + "pushSteps": 1, + "pushWeight": 2, + "ecmCellID": 0, + "deltat": 0.1, + "eta": 0.25, + "k0": 0.1, + "k1": 0.1, + "c": 4, + "alpha": 2, + "d": 0.3, + "phi": 1, + "lambda": 50 + } + }, + "Writers": { + "ParallelVTK_Cells": { + "writer": "ParallelVtkImage", + "outputtype": "UInt32", + "field": "cells", + "steps": 1 + }, + "ParallelVTK_Displacement": { + "writer": "ParallelVtkImage", + "outputtype": "Float32", + "field": "dynamicecm", + "components": [0, 1, 2], + "steps": 1 + } + }, + "WriteActions": ["ParallelVTK_Cells", "ParallelVTK_Displacement"] +} diff --git a/experiments/configs/genesis-singleblock.json b/experiments/configs/genesis-singleblock.json new file mode 100644 index 0000000..d07b538 --- /dev/null +++ b/experiments/configs/genesis-singleblock.json @@ -0,0 +1,131 @@ +{ + "#Testing": { + "description": "Cellular Potts Model with dynamic ECM" + }, + "Application": "Cells", + "Geometry": { + "blocksize": [80, 80, 80], + "blockcount": [1, 1, 1] + }, + "Settings": { + "timesteps": 250, + "randomseed": 42 + }, + "Filling": { + "cells": [ + { + "_comment": "This is for the dynamic ECM", + "shape": "cube", + "box": [ + [0, 0, 0], + [79, 79, 79] + ], + "value": 0, + "celltype": 0 + }, + { + "shape": "cube", + "box": [ + [41, 35, 10], + [45, 39, 15] + ], + "celltype": 2 + }, + { + "shape": "cube", + "box": [ + [40, 15, 14], + [47, 22, 20] + ], + "celltype": 2 + }, + { + "shape": "cube", + "box": [ + [40, 20, 20], + [47, 27, 26] + ], + "celltype": 3 + }, + { + "shape": "cube", + "box": [ + [38, 20, 60], + [45, 27, 66] + ], + "celltype": 3 + } + ] + }, + "CellsInSilico": { + "liquid": 1, + "adhesion": { + "matrix": [ + [0, 0, 0, 0], + [0, 0, 0, 0], + [0, 0, 10, 5], + [0, 0, 5, 5] + ] + }, + "temperature": 15, + "volume": { + "default": { + "storage": "const", + "value": 2000 + }, + "lambda": { + "storage": "const", + "value": 10 + } + }, + "surface": { + "default": { + "storage": "const", + "value": 800 + }, + "lambda": { + "storage": "const", + "value": 10 + } + }, + "cleaner": { + "killdistance": 100 + }, + "checkerboard": "00", + "energyfunctions": ["Volume00", "Surface00", "Adhesion00", "DynamicECM00"], + "centerofmass": { + "steps": 10 + }, + "dynamicecm": { + "enabled": true, + "stepsPerMcs": 100, + "pushSteps": 10, + "pushWeight": 2, + "ecmCellID": 0, + "deltat": 0.1, + "eta": 0.25, + "k0": 0.1, + "k1": 0.1, + "c": 4, + "alpha": 2, + "d": 0.3, + "phi": 1 + } + }, + "Writers": { + "ParallelVTK_Cells": { + "writer": "ParallelVtkImage", + "outputtype": "UInt32", + "field": "cells", + "steps": 1 + }, + "ParallelVTK_Displacement": { + "writer": "ParallelVtkImage", + "outputtype": "Float32", + "field": "dynamicecm", + "components": [0, 1, 2], + "steps": 1 + } + }, + "WriteActions": ["ParallelVTK_Cells", "ParallelVTK_Displacement"] +}