Skip to content

Commit

Permalink
Merge branch 'main' into franziska-wegner/2024/january/tests/algorith…
Browse files Browse the repository at this point in the history
…ms/DominatingThetaPath
  • Loading branch information
franziska-wegner committed Jan 5, 2024
2 parents e84732f + c83e2cd commit 2f022af
Show file tree
Hide file tree
Showing 18 changed files with 1,777 additions and 3 deletions.
9 changes: 9 additions & 0 deletions .gitconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Include this file in your workflow with `git config --local include.path ./.gitconfig`
[commit]
gpgsign = true
template = ./.gitmessage
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,6 @@ build-debug/*

# IDE specific files
egoa.sublime-workspace

# GitHub Codespace specific files
out/*
24 changes: 24 additions & 0 deletions .gitmessage
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Title of the commit message

##################################
Why:
## Why is the change necessary?
## What does the reviewer of my put request expect in the commit, help them to easily identify and point out unrelated changes!

* ...

##################################
This change addresses the need by:
## How does it address the issue? Like performance improvements, or bugs, or ... <if change is obvious omit this part>

* ...

##################################
What side effects does this change have?
## To many points here means a to large commit! (1 or 2 is fine)

* ...

# 50-character subject line
#
# 72-character wrapped longer description.
4 changes: 4 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"configurations": [],
"version": "0.2.0"
}
93 changes: 93 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{
"configurePresets": [
{
"binaryDir": "${workspaceRoot}/out",
"cacheVariables": {
"BONMIN_ROOT_DIR": "NONE-DIR",
"Boost_DIRECTORIES": "/opt/homebrew/opt/boost/",
"Boost_NO_SYSTEM_PATHS": "TRUE",
"CMAKE_CXX_COMPILER": "/opt/homebrew/opt/llvm/bin/clang++",
"CMAKE_C_COMPILER": "/opt/homebrew/opt/llvm/bin/clang",
"CMAKE_INSTALL_PREFIX": "${workspaceRoot}/out/install/${presetName}",
"COIN_INCLUDE_DIR": "NONE-DIR",
"COIN_LIBRARY_DIR": "NONE-DIR",
"CPLEX_HOME": "NONE-DIR",
"EGOA_DOWNLOAD_CPPAD": "OFF",
"EGOA_DOWNLOAD_EIGEN": "ON",
"EGOA_DOWNLOAD_GOOGLE_TEST_FRAMEWORK": "ON",
"EGOA_DOWNLOAD_IEEE": "ON",
"EGOA_DOWNLOAD_PYPSA_EUR": "ON",
"EGOA_DOWNLOAD_PYPSA_ITI_COLLABORATION": "ON",
"EGOA_DOWNLOAD_SCIGRID": "ON",
"EGOA_DOWNLOAD_WINDFARM": "ON",
"EGOA_ENABLE_ASSERTION": "ON",
"EGOA_ENABLE_BONMIN": "OFF",
"EGOA_ENABLE_BOOST": "OFF",
"EGOA_ENABLE_CPLEX": "OFF",
"EGOA_ENABLE_DOCUMENTATION": "ON",
"EGOA_ENABLE_EXCEPTION_HANDLING": "ON",
"EGOA_ENABLE_GUROBI": "OFF",
"EGOA_ENABLE_IPOPT": "OFF",
"EGOA_ENABLE_OGDF": "OFF",
"EGOA_ENABLE_OPENMP": "OFF",
"EGOA_ENABLE_TESTS": "ON",
"EGOA_ENABLE_VERBOSE_MAKEFILE": "ON",
"EGOA_PEDANTIC_AS_ERRORS": "OFF",
"EGOA_PEDANTIC_MODE": "ON",
"EGOA_TEST_FRAMEWORK": "OfflineGoogleTestFramework",
"EGOA_TEST_FRAMEWORK_LOCATION": "external/GoogleTestFramework",
"EGOA_THREAD_LIMIT": "0",
"EGOA_WARNINGS_AS_ERRORS": "ON",
"GUROBI_ROOT_DIR": "NONE-DIR",
"OGDF_AUTOGEN_INCLUDE_DIR": "NONE-DIR",
"OGDF_INCLUDE_DIR": "NONE-DIR",
"OGDF_LIBRARY_DIR": "NONE-DIR",
"OPENMP_INCLUDES": "/opt/homebrew/opt/llvm/include",
"OPENMP_LIBRARIES": "/opt/homebrew/opt/llvm/lib"
},
"generator": "Unix Makefiles",
"hidden": true,
"name": "base"
},
{
"cacheVariables": {
"VCPKG_BUILD_BENCHMARKING": "On"
},
"hidden": true,
"name": "benchmark-base"
},
{
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"EGOA_BUILD_TYPE": "Debug"
},
"displayName": "Debug",
"name": "debug"
},
{
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"EGOA_BUILD_TYPE": "Release"
},
"displayName": "Release",
"name": "release"
},
{
"displayName": "Debug + Benchmarks",
"inherits": [
"debug",
"benchmark-base"
],
"name": "debug-benchmarks"
},
{
"displayName": "Release + Benchmarks",
"inherits": [
"release",
"benchmark-base"
],
"name": "release-benchmarks"
}
],
"version": 3
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/sh
#
# localConfig.sh
#
# Created on:
# Author: Franziska Wegner
#
# Project configuration on the local computer to avoid long command line text
# with arguments.
#
#########################################################
# Define local standard argument ########################
#########################################################

EGOA_ALGORITHM="DCMTSF"
EGOA_DIR_PATH_BENCHMARK_DATA="/Users/franziska-wegner/Documents/work/frameworks/egoa/data/PowerGrids/IEEEcases/11-NESTA/nesta-0.7.0/opf"
EGOA_DIR_PATH_OUTPUT="/Users/franziska-wegner/Documents/work/frameworks/egoa/output"
EGOA_FILE_PATH_EXECUTABLE="/Users/franziska-wegner/Documents/work/frameworks/egoa/.build/bin/egoa"

# Maximum execution time of the algorithm
EGOA_MAXIMUM_EXECUTION_TIME="0"
# Track solutions over time (e.g., MILP solver via callbacks)
EGOA_TRACK_SOLUTIONS="TRUE"
# Number of parallel program executions (compute/server dependent)
EGOA_NUM_PARALLEL_EXECUTIONS="40"
# Number of parallel processes each execution of the algorithm gets (dependent
# on the evaluation)
EGOA_NUM_PARALLEL_PROCESSES="1"

# Clean output directory
EGOA_CLEAN_OUTPUT_DIR="TRUE"
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh
#
# serverConfig.sh
#
# Created on: Jan 30, 2019
# Author: Franziska Wegner
#
# Project configuration on the server to avoid long command line text with
# arguments.
#
#########################################################
# Define server standard argument ########################
#########################################################

EGOA_ALGORITHM="DCMTSF"
EGOA_DIR_PATH_BENCHMARK_DATA=""
EGOA_DIR_PATH_OUTPUT=""
EGOA_FILE_PATH_EXECUTABLE=""
EGOA_EXECUTABLE_NAME="egoa"

# Maximum execution time of the algorithm
EGOA_MAXIMUM_EXECUTION_TIME="0"
# Track solutions over time (e.g., MILP solver via callbacks)
EGOA_TRACK_SOLUTIONS="TRUE"
# Number of parallel program executions (compute/server dependent)
EGOA_NUM_PARALLEL_EXECUTIONS="40"
# Number of parallel processes each execution of the algorithm gets (dependent
# on the evaluation)
EGOA_NUM_PARALLEL_PROCESSES="1"

# Clean output directory
EGOA_CLEAN_OUTPUT_DIR="TRUE"
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
#!/bin/sh
#
# experimentUsage.sh
#
# Created on: Jan 30, 2019
# Author: Franziska Wegner
#
# Defines a standard usage interface for the experiments including the details
# of a specified configuration script. Templates for configuration scripts can
# be found under
# ./localConfig.sh
# ./serverConfig.sh
# where "./localConfig.sh" is the default configuration.
#

#########################################################
# Define input argument #################################
#########################################################

# Usage of this file --help
usage() { echo -e "Usage: $0 -a <algorithm> \t\t\t(default: DCMTSF)
\t\t -c <clean output directory> \t\t(default: FALSE)
\t\t -b <directory path to benchmark data> \t\t\t
\t\t -o <directory path to output> \t\t\t
\t\t -e <directory path to executable> \t\t\t
\t\t -t <maximum execution time> \t\t\t
\t\t -s <track solutions over time> \t\t\t(default: FALSE)
\t\t -p <number parallel executions> \t\t\t(default: ?)
\t\t -q <number parallel processes each> \t\t\t(default: 1)
\t\t -i <configuration file> \t\t\t
" 1>&2; exit 1; }

# Check input arguments
while getopts ":a:c:b:o:e:t:s:p:q:" opt; do
case $opt in
a)
algorithm="${OPTARG}"
;;
c)
cleanOutputDirectory=${OPTARG}
;;
b)
dirBenchmarkData=${OPTARG}
;;
o)
dirOutput=${OPTARG}
;;
e)
executable=${OPTARG}
;;
t)
maxExecutionTime=${OPTARG}
;;
s)
trackSolutions=${OPTARG}
;;
p)
numParallelExecutions=${OPTARG}
;;
t)
numParallelProcessesEach=${OPTARG}
;;
i)
configFile=${OPTARG}
;;
\?)
echo "Invalid option: -$OPTARG" >&2
usage
;;
:)
;;
esac
done
shift "$((OPTIND-1))"

#########################################################
# Define local standard argument ########################
#########################################################
# Location and the file of the cmake configuration
if [ -z "${configFile}" ]; then
configFile="$EGOA_STD_CONFIG_FILE"
fi

source "${configFile}"

#########################################################
# Check for empty options and fill ######################
#########################################################

# Algorithm (e.g., DCMTSF)
if [ -z "${algorithm}" ]; then
algorithm="$EGOA_ALGORITHM"
fi

# Clean output directory
if [ -z "${cleanOutputDirectory}" ]; then
cleanOutputDirectory="$EGOA_CLEAN_OUTPUT_DIR"
fi

# Path to the benchmark data directory
if [ -z "${dirBenchmarkData}" ]; then
dirBenchmarkData="$EGOA_DIR_PATH_BENCHMARK_DATA"
fi

# Path to the output directory
if [ -z "${dirOutput}" ]; then
dirOutput="$EGOA_DIR_PATH_OUTPUT"
fi

# Create output directory if it does not exist
if [ ! -d "${dirOutput}" ]; then
mkdir "${dirOutput}"
fi

# Path to the executable file
if [ -z "${executable}" ]; then
executable="$EGOA_FILE_PATH_EXECUTABLE"
fi

# Maximum execution time of the program
if [ -z "${maxExecutionTime}" ]; then
maxExecutionTime="$EGOA_MAXIMUM_EXECUTION_TIME"
fi

# Track solutions over time (e.g., MILP solver via callbacks)
if [ -z "${trackSolutions}" ]; then
trackSolutions="$EGOA_TRACK_SOLUTIONS"
fi

# Number of parallel executions
if [ -z "${numParallelExecutions}" ]; then
numParallelExecutions="$EGOA_NUM_PARALLEL_EXECUTIONS"
fi

# Number of parallel processes each execution of the algorithm gets
if [ -z "${numParallelProcessesEach}" ]; then
numParallelProcessesEach="$EGOA_NUM_PARALLEL_PROCESSES"
fi
Loading

0 comments on commit 2f022af

Please sign in to comment.