Commit f8bf6a6
New Release Geneva 1.11 (#36)
* Removed surplus boost/optional headers
* Replaced boost::filesystem by std::filesystem
* Removed boost::any and boost::variant (plus some boost::serialization::variant headers)
* Removed some more boost::variant headers
* Enforced CMake 3.10 and higher and simplified changing of CMake minimum version (now only in the top level CMakeLists.txt and in the CommonGenevaBuild.cmake-files)
* Moved demo processing containers to the courtier main directories
* Moved courtier benchmarks to its own benchmark directory
* Moved geneva benchmarks to their own benchmark directory
* Updated CHANGES file
* Fixing a bug in a demo
* Adding explicitely the stdc++fs library for gcc < 9.0 using proper Cmake Module (#3)
* Add explicit stdc++fs library for gcc version < 9.0
* add explictely the stdc++fs library for gcc version < 9.0 using IdentifySystemParameter module
* build: improve setting the stdc++fs library.
Replace CMAKE_CXX_STANDARD_LIBRARIES with CMAKE_SHARED_LINKER_FLAGS as used
in the rest of the function, since it should also "not be set by project code"
according to docu.
Also fix indentation and update the copies of IdentifySystemParameters.cmake
in the example folders.
* 12 mpi consumer (#17)
* #12 add build directories to .gitignore
* #12 add boilerplate for MPIConsumerT
* #12 create initial example for MPIConsumerT
* #12 reformat file examples/geneva/16_GMPIConsumer/GMPIConsumer.cpp
* #12 add todos and remove unnecessary variables
* #12 create and start implement class 'GMPIConsumerT'
* #12 make GMPIConsumerT boilerplate syntactically correct and let it inherit from both classes: GBaseConsumerT and GBaseClientT. Override all virtual required methods with empty implementation.
* #12 implement all trivial but required methods in GMPIConsumerT
* #12 remove deprecated code from GMPIConsumerT.hpp and forward function calls of class 'GMPIConsumerT' to the classes 'GMPIConsumerMasterNodeT' and 'GMPIConsumerWorkerNodeT'
* #12 reconstruate basic GAsioConsumerT and GAsioConsumerClientT workflow as a comment
* #12 pass worldSize and worldRank to GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT for more flexible access to the information about the processes position in cluster
* #12 fix: make compilation of GMPIConsumerT.hpp conditional to whether the CMake variable BUILD_WITH_MPI_CONSUMER is set
* #12 todos and implementation draft in form of comments
* #12 enhance in-code documentation and make number of IO-threads for GMPIConsumerMasterNodeT configurable
* #12 send and receive test messages between master node and worker nodes
* #12 create new header and source files for helper functions regarding MPI
* #12 remove deprecated todo
* #12 implement processing of requests in GMPIConsumerWorkerNodet and GMPIConsumerMasterNodeT. So far compilation works but runtime errors occur.
* #12 remove deprecated todos
* #12 log more descriptive error messages in catch-blocks
* #12 fix: resolve runtime bug regarding serialization and not sending correct result from worker node
* #12 GMPIConsumerMasterNodeT: run receiver in dedicated thread outside of the thread group which handles single connections
* #12 use buffer allocation on heap with smart pointer for incoming requests on GMPIConsumerMasterNodeT
* #12 GMPIConsumerWorkerNodeT: use buffer on the heap managed by smart pointer for incoming messages (work items)
* #12 add todo
* #12 use NODATA variant in case broker has no work items instead of holding the connection until there is a work item availible. The disadvantage of the old approach is that we possibly hold connecitons for too long, which might be problematic if worker nodes crash or get stopped during the connection is alive
* #12 use appropriate amount of heap memory for incoming messsages
* #12 fix: initialize MPI in multithreaded mode which prevents concurrency error inside of the MPI library that had occurred inside of the GMPIConsumerMasterNodeT
* #12 clean up 16_GMPIConsumer/ example
* #12 adjust addCLOptions_
* #12 GMPIConsumerT: extract constants for poll intervals and timouts
* #12 update in-code documentation
* #12 add todos
* #12 improve start up terminal messages
* #12 GMPIConsumerT: use appropriate logging levels for messages
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerT: do not pass this by reference but only required methods as lambdas to fulfil principle of least priviledge
* #12 GMPIConsumerT: use GFILE logging level instead of STDOUT logging level for less important non-erroneous messages
* #12 GMPIConsumerT: always immediately initialize all variables
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerWorkerNodeT: shut down workers properly by using async communication. Use double buffering to retrieve next work item while previous work item is still being processed
* #12 GMPIConsumerT.cpp: add todos
* #12 GMPIConsumer: feat: add timeout for send operations in GMPIConsumerSessionT; refactor: extract configuration structs for the configuration of GMPIMasterNodeT and GMPIWorkerNodeT
* #12 remove already resolved 'TODO's
* #12 GMPIConsumerMasterNodeT: calculate recommendation for number of threads in thread pool handling open connections
* #12 GMPIConsumerWorkerNodeT: use member variables for mpi request handles, because program logic ensures exclusive access to those resources
* #12 GMPIConsumerWorkerNodeT: cancel active asynchronous requests in case an error occures
* #12 GMPIConsumerMasterNodeT: cancel pending requests in case of receiving a stop signal from caller on the main thread
* #12 GMPIConsumerMasterNodeT: remove unnecessary call to boost::asio::io_service::work
* #12 GMPIConsumerT: only specify logging level and let the user specify whether to log to file or to console by setting logging target
* #12 GMPIConsumer.cpp: make the target of log messages configurable through a command line argument.
* #12 GMPIConsumerT: make all constants configurable and update in-code documentation
* #12 incorporate GMPIConsumerT into Go2
* #12 GMPIConsumerMasterNodeT: move the log message which informs the user that the master node has started up back into the constructor, because now we already now the final size of threads in the constructor. This is because we no longer need to act on the command line options in GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT, because that is done by the wrapping GMPIConsumerT
* #12 examples: link MPI into examples if those examples use the Go2 class and the current build of geneva includes the MPI consumer
* #12 docs: update READMEs: reference example 16_GMPIConsumer/ in the examples XX_DirectXX/. Reference examples using the Go2 class in example 16_GMPIConsumer/
* #12 link MPI to all tests, benchmarks and examples in case the current build of geneva includes the mpi consumer
* #12 use singleton access to GMPIConsumerT in Go2.cpp in order to not call MPI_Init or MPI_Finalize more than once
* #12 uncomment instantiation of GMPIConsumerT
* #12 replace boost::asio::detail::thread_group with Gem::Common::GThreadPool
* #12 remove already resolved 'TODO'
* #12 create script to run command multiple times
* #12 make output of scripts/repeatedRun.sh prettier
* #12 fix non-deterministic bug when calling glogger from GConsumerSessionT
* #12 clarify comment
* #12 include string in file that uses string although string
* #12 create docker setup
* #12 also install 'which' in build-image
* #12 use multithreaded building for docker images
* #12 make it possible to set receivePollIntervalUSec for GMPIConsumerMasterNodeT to 0; add todo
* #12 link MPI in case of building with MPI to all examples and tests that require it
* #12 create common base image 'GenevaPrerequisites.Dockerfile' for geneva docker images
* #12 set up a docker image for the completed geneva build
* #12 add todo
* #12 fix various bugs in the docker setup; change file names; set up interactive shell in geneva_builder for developers
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 calling docker-compose down when running 'run-geneva-builder-interactive'
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 write readme for docker and docker-compose setup
* #12 fix local slurm setup, write information regarding this to the README.md
* #12 add todos
* #12 use std primitive types instead of boost primitive types
* #12 use std::chrono to measure timeouts and use std::this_thread::sleep_for for waiting
* #12 add boilerplate for example 17_GMPISubClients
* #12 make MPI subclients possible - example 17_GMPISubClients still contains bugs
* #12 do not finalize mpi if it has never been initialized
* #12 fix example 17_GMPISubClients
* #12 fix sub-communicator grouping in example 17_GMPIEvaluatedIndividual
* #12 use one cleanup thread to wait for completion of sessions in order to more quickly enable threads in thread-pool to be ready for new sessions
* #12 update in-code documentation for GMPIConsumerT
* #12 correct typos in comments
* #12 add comment
* #12 correct return value of initializeMPI method
* #12 increase maximum message size and add check if maximum message size is sufficient for runtime requirements
* #13 move docker setup to a seperate branch `13-docker-and-docker-compse-setup`
* #12 fix external iteration counter exception in benchmarks/geneva/GParallelisationOverhead
* #12 start implementation of performance benchmark for GAsioConsumerT and GMPIConsumerT
* #12 implement benchmark for asio-consumer and mpi-consumer. benchmarking asio-consumer is not impelmented yet
* #12 implement asio benchmark
* #12 draw multiple curves in one plot with different colors
* #12 plot legends
* #12 also plot graphs with nClients on x axis
* #12 set y-axis limits correctly in graph with subplots
* #12 extract method to set axis limits to GBasePlotter and use it also for Graph2ED in the GAsioMPIBenchmark
* #15 extract GAsioMPIBenchmark to branch 15
* #12 add init method to GBaseConsumerT
* #12 add todo in example 17
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 close sessions correctly on client side
* #12 fix: use m_handlerThreadPool to schedule tasks to pool instead of asio::post
* #12 remove deprecated todos
* #12 show worker node shutdown message also in release mode, because that is an important information which the user might want to see and use to adjust the workers timeout-configuration
* #12 try to synchronize all proceses before starting consumer in order to not trigger timeouts on worker side if master node is not up and running yet
* #12 change unit of worker poll timeout to seconds, because any amount below one second is not useful and configuring it this way is more convenient
* #12 update in-code documentation for GMPIConsumerT
* #12 update examples/geneva/16_GMPIConsumer/README.md
* #12 make synchronization configurable
* #12 leave synchronization open to user, because synchronizing on startup causes issues in some edge cases like sub-client optimization
* #12 change all clocks to std::chrono::steady_clock in GMPIConsumerT
* #12 improve code readability by making the time since a session is finished a property of the session class itself
* #12 correct two mistakes in CMD messages which must have happened when copy pasting
* #12 fix bug in prepare build script which occured because of wrong variable name
* #12 wrap access to GMPIConsumer in standard consumers in compile time macro ifdef to make sure it is only compiled if building with MPI-Consumer
* Added a thank you message for Jonas' contribution
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
Co-authored-by: rberlich <r.berlich@gemfony.eu>
* 16 gmpisubclientoptimizer (#18)
* #12 add build directories to .gitignore
* #12 add boilerplate for MPIConsumerT
* #12 create initial example for MPIConsumerT
* #12 reformat file examples/geneva/16_GMPIConsumer/GMPIConsumer.cpp
* #12 add todos and remove unnecessary variables
* #12 create and start implement class 'GMPIConsumerT'
* #12 make GMPIConsumerT boilerplate syntactically correct and let it inherit from both classes: GBaseConsumerT and GBaseClientT. Override all virtual required methods with empty implementation.
* #12 implement all trivial but required methods in GMPIConsumerT
* #12 remove deprecated code from GMPIConsumerT.hpp and forward function calls of class 'GMPIConsumerT' to the classes 'GMPIConsumerMasterNodeT' and 'GMPIConsumerWorkerNodeT'
* #12 reconstruate basic GAsioConsumerT and GAsioConsumerClientT workflow as a comment
* #12 pass worldSize and worldRank to GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT for more flexible access to the information about the processes position in cluster
* #12 fix: make compilation of GMPIConsumerT.hpp conditional to whether the CMake variable BUILD_WITH_MPI_CONSUMER is set
* #12 todos and implementation draft in form of comments
* #12 enhance in-code documentation and make number of IO-threads for GMPIConsumerMasterNodeT configurable
* #12 send and receive test messages between master node and worker nodes
* #12 create new header and source files for helper functions regarding MPI
* #12 remove deprecated todo
* #12 implement processing of requests in GMPIConsumerWorkerNodet and GMPIConsumerMasterNodeT. So far compilation works but runtime errors occur.
* #12 remove deprecated todos
* #12 log more descriptive error messages in catch-blocks
* #12 fix: resolve runtime bug regarding serialization and not sending correct result from worker node
* #12 GMPIConsumerMasterNodeT: run receiver in dedicated thread outside of the thread group which handles single connections
* #12 use buffer allocation on heap with smart pointer for incoming requests on GMPIConsumerMasterNodeT
* #12 GMPIConsumerWorkerNodeT: use buffer on the heap managed by smart pointer for incoming messages (work items)
* #12 add todo
* #12 use NODATA variant in case broker has no work items instead of holding the connection until there is a work item availible. The disadvantage of the old approach is that we possibly hold connecitons for too long, which might be problematic if worker nodes crash or get stopped during the connection is alive
* #12 use appropriate amount of heap memory for incoming messsages
* #12 fix: initialize MPI in multithreaded mode which prevents concurrency error inside of the MPI library that had occurred inside of the GMPIConsumerMasterNodeT
* #12 clean up 16_GMPIConsumer/ example
* #12 adjust addCLOptions_
* #12 GMPIConsumerT: extract constants for poll intervals and timouts
* #12 update in-code documentation
* #12 add todos
* #12 improve start up terminal messages
* #12 GMPIConsumerT: use appropriate logging levels for messages
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerT: do not pass this by reference but only required methods as lambdas to fulfil principle of least priviledge
* #12 GMPIConsumerT: use GFILE logging level instead of STDOUT logging level for less important non-erroneous messages
* #12 GMPIConsumerT: always immediately initialize all variables
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerWorkerNodeT: shut down workers properly by using async communication. Use double buffering to retrieve next work item while previous work item is still being processed
* #12 GMPIConsumerT.cpp: add todos
* #12 GMPIConsumer: feat: add timeout for send operations in GMPIConsumerSessionT; refactor: extract configuration structs for the configuration of GMPIMasterNodeT and GMPIWorkerNodeT
* #12 remove already resolved 'TODO's
* #12 GMPIConsumerMasterNodeT: calculate recommendation for number of threads in thread pool handling open connections
* #12 GMPIConsumerWorkerNodeT: use member variables for mpi request handles, because program logic ensures exclusive access to those resources
* #12 GMPIConsumerWorkerNodeT: cancel active asynchronous requests in case an error occures
* #12 GMPIConsumerMasterNodeT: cancel pending requests in case of receiving a stop signal from caller on the main thread
* #12 GMPIConsumerMasterNodeT: remove unnecessary call to boost::asio::io_service::work
* #12 GMPIConsumerT: only specify logging level and let the user specify whether to log to file or to console by setting logging target
* #12 GMPIConsumer.cpp: make the target of log messages configurable through a command line argument.
* #12 GMPIConsumerT: make all constants configurable and update in-code documentation
* #12 incorporate GMPIConsumerT into Go2
* #12 GMPIConsumerMasterNodeT: move the log message which informs the user that the master node has started up back into the constructor, because now we already now the final size of threads in the constructor. This is because we no longer need to act on the command line options in GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT, because that is done by the wrapping GMPIConsumerT
* #12 examples: link MPI into examples if those examples use the Go2 class and the current build of geneva includes the MPI consumer
* #12 docs: update READMEs: reference example 16_GMPIConsumer/ in the examples XX_DirectXX/. Reference examples using the Go2 class in example 16_GMPIConsumer/
* #12 link MPI to all tests, benchmarks and examples in case the current build of geneva includes the mpi consumer
* #12 use singleton access to GMPIConsumerT in Go2.cpp in order to not call MPI_Init or MPI_Finalize more than once
* #12 uncomment instantiation of GMPIConsumerT
* #12 replace boost::asio::detail::thread_group with Gem::Common::GThreadPool
* #12 remove already resolved 'TODO'
* #12 create script to run command multiple times
* #12 make output of scripts/repeatedRun.sh prettier
* #12 fix non-deterministic bug when calling glogger from GConsumerSessionT
* #12 clarify comment
* #12 include string in file that uses string although string
* #12 create docker setup
* #12 also install 'which' in build-image
* #12 use multithreaded building for docker images
* #12 make it possible to set receivePollIntervalUSec for GMPIConsumerMasterNodeT to 0; add todo
* #12 link MPI in case of building with MPI to all examples and tests that require it
* #12 create common base image 'GenevaPrerequisites.Dockerfile' for geneva docker images
* #12 set up a docker image for the completed geneva build
* #12 add todo
* #12 fix various bugs in the docker setup; change file names; set up interactive shell in geneva_builder for developers
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 calling docker-compose down when running 'run-geneva-builder-interactive'
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 write readme for docker and docker-compose setup
* #12 fix local slurm setup, write information regarding this to the README.md
* #12 add todos
* #12 use std primitive types instead of boost primitive types
* #12 use std::chrono to measure timeouts and use std::this_thread::sleep_for for waiting
* #12 add boilerplate for example 17_GMPISubClients
* #12 make MPI subclients possible - example 17_GMPISubClients still contains bugs
* #12 do not finalize mpi if it has never been initialized
* #12 fix example 17_GMPISubClients
* #12 fix sub-communicator grouping in example 17_GMPIEvaluatedIndividual
* #12 use one cleanup thread to wait for completion of sessions in order to more quickly enable threads in thread-pool to be ready for new sessions
* #12 update in-code documentation for GMPIConsumerT
* #12 correct typos in comments
* #12 add comment
* #12 correct return value of initializeMPI method
* #12 increase maximum message size and add check if maximum message size is sufficient for runtime requirements
* #13 move docker setup to a seperate branch `13-docker-and-docker-compse-setup`
* #12 fix external iteration counter exception in benchmarks/geneva/GParallelisationOverhead
* #12 start implementation of performance benchmark for GAsioConsumerT and GMPIConsumerT
* #12 implement benchmark for asio-consumer and mpi-consumer. benchmarking asio-consumer is not impelmented yet
* #12 implement asio benchmark
* #12 draw multiple curves in one plot with different colors
* #12 plot legends
* #12 also plot graphs with nClients on x axis
* #12 set y-axis limits correctly in graph with subplots
* #12 extract method to set axis limits to GBasePlotter and use it also for Graph2ED in the GAsioMPIBenchmark
* #15 extract GAsioMPIBenchmark to branch 15
* #12 add init method to GBaseConsumerT
* #12 add todo in example 17
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 close sessions correctly on client side
* #12 fix: use m_handlerThreadPool to schedule tasks to pool instead of asio::post
* #12 remove deprecated todos
* #16 implement first version of GMPISubClientOptimizer
* #16 set default callback which throws an exception indicating that setting callback has been forgotten
* #16 create GMPISubClientIndividual
* #16 implement GMPISubClient example
* #16 rename and adjust config file for GMPISubClientOptimizer example
* #16 fix bug related to passing nullptr to scatter and gather as root process
* #16 use async calls to implement timeout
* #16 update readme
* #12 show worker node shutdown message also in release mode, because that is an important information which the user might want to see and use to adjust the workers timeout-configuration
* #16 make retriving client mode possible
* #16 do not initialize MPI if using a sub communicator
* #16 delete deprecated unused file
* #16 delete deprecated unused file
* #16 make sub-client job part of the individual
* #16 add comment
* #16 move GMPISubClientIndividual from geneva-individuals to geneva, because it is not a complete individual but an abstract base class for user defined individuals
* #16 make rank 0 of each subgroup be the Geneva client and the other ranks be the sub-client. Before this commit the rank n-1 of each subgroup was the geneva client, which is not intuitive
* #12 try to synchronize all proceses before starting consumer in order to not trigger timeouts on worker side if master node is not up and running yet
* #12 change unit of worker poll timeout to seconds, because any amount below one second is not useful and configuring it this way is more convenient
* #12 update in-code documentation for GMPIConsumerT
* #12 update examples/geneva/16_GMPIConsumer/README.md
* #16 extend documenation for examples/geneva/17_GMPISubClients/
* #16 correct typo in documenation for examples/geneva/17_GMPISubClients/
* #16 change std::cout to glogger
* #16 update examples/geneva/README
* #12 make synchronization configurable
* #16 correct typo
* #16 improve code readability
* #12 leave synchronization open to user, because synchronizing on startup causes issues in some edge cases like sub-client optimization
* #16 fix: parse GMPISubClientOptimizer configuration options from file
* #16 rewrite example 17_GMPISubClients to actually parallelize the work and measure the total wall time
* #16 rename class and associated files
* #16 change configuration for geneva example 17
* #16 fix: use shutdown signal instead of timeout for sub-client termination
* #12 change all clocks to std::chrono::steady_clock in GMPIConsumerT
* #12 improve code readability by making the time since a session is finished a property of the session class itself
* #16 reformat file GMPISubClientIndividual.cpp
* #16 reformat file GMPISubClientIndividual.hpp
* #16 fix: make client mode accessible from GMPISubClientIndividual and use this to correct error when calling getClientStatus() in client mode, because request object was not set
* #12 correct two mistakes in CMD messages which must have happened when copy pasting
* #12 fix bug in prepare build script which occured because of wrong variable name
* #12 wrap access to GMPIConsumer in standard consumers in compile time macro ifdef to make sure it is only compiled if building with MPI-Consumer
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
* 2023 01 06 compilation fix develop (#20)
* #12 add build directories to .gitignore
* #12 add boilerplate for MPIConsumerT
* #12 create initial example for MPIConsumerT
* #12 reformat file examples/geneva/16_GMPIConsumer/GMPIConsumer.cpp
* #12 add todos and remove unnecessary variables
* #12 create and start implement class 'GMPIConsumerT'
* #12 make GMPIConsumerT boilerplate syntactically correct and let it inherit from both classes: GBaseConsumerT and GBaseClientT. Override all virtual required methods with empty implementation.
* #12 implement all trivial but required methods in GMPIConsumerT
* #12 remove deprecated code from GMPIConsumerT.hpp and forward function calls of class 'GMPIConsumerT' to the classes 'GMPIConsumerMasterNodeT' and 'GMPIConsumerWorkerNodeT'
* #12 reconstruate basic GAsioConsumerT and GAsioConsumerClientT workflow as a comment
* #12 pass worldSize and worldRank to GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT for more flexible access to the information about the processes position in cluster
* #12 fix: make compilation of GMPIConsumerT.hpp conditional to whether the CMake variable BUILD_WITH_MPI_CONSUMER is set
* #12 todos and implementation draft in form of comments
* #12 enhance in-code documentation and make number of IO-threads for GMPIConsumerMasterNodeT configurable
* #12 send and receive test messages between master node and worker nodes
* #12 create new header and source files for helper functions regarding MPI
* #12 remove deprecated todo
* #12 implement processing of requests in GMPIConsumerWorkerNodet and GMPIConsumerMasterNodeT. So far compilation works but runtime errors occur.
* #12 remove deprecated todos
* #12 log more descriptive error messages in catch-blocks
* #12 fix: resolve runtime bug regarding serialization and not sending correct result from worker node
* #12 GMPIConsumerMasterNodeT: run receiver in dedicated thread outside of the thread group which handles single connections
* #12 use buffer allocation on heap with smart pointer for incoming requests on GMPIConsumerMasterNodeT
* #12 GMPIConsumerWorkerNodeT: use buffer on the heap managed by smart pointer for incoming messages (work items)
* #12 add todo
* #12 use NODATA variant in case broker has no work items instead of holding the connection until there is a work item availible. The disadvantage of the old approach is that we possibly hold connecitons for too long, which might be problematic if worker nodes crash or get stopped during the connection is alive
* #12 use appropriate amount of heap memory for incoming messsages
* #12 fix: initialize MPI in multithreaded mode which prevents concurrency error inside of the MPI library that had occurred inside of the GMPIConsumerMasterNodeT
* #12 clean up 16_GMPIConsumer/ example
* #12 adjust addCLOptions_
* #12 GMPIConsumerT: extract constants for poll intervals and timouts
* #12 update in-code documentation
* #12 add todos
* #12 improve start up terminal messages
* #12 GMPIConsumerT: use appropriate logging levels for messages
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerT: do not pass this by reference but only required methods as lambdas to fulfil principle of least priviledge
* #12 GMPIConsumerT: use GFILE logging level instead of STDOUT logging level for less important non-erroneous messages
* #12 GMPIConsumerT: always immediately initialize all variables
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerWorkerNodeT: shut down workers properly by using async communication. Use double buffering to retrieve next work item while previous work item is still being processed
* #12 GMPIConsumerT.cpp: add todos
* #12 GMPIConsumer: feat: add timeout for send operations in GMPIConsumerSessionT; refactor: extract configuration structs for the configuration of GMPIMasterNodeT and GMPIWorkerNodeT
* #12 remove already resolved 'TODO's
* #12 GMPIConsumerMasterNodeT: calculate recommendation for number of threads in thread pool handling open connections
* #12 GMPIConsumerWorkerNodeT: use member variables for mpi request handles, because program logic ensures exclusive access to those resources
* #12 GMPIConsumerWorkerNodeT: cancel active asynchronous requests in case an error occures
* #12 GMPIConsumerMasterNodeT: cancel pending requests in case of receiving a stop signal from caller on the main thread
* #12 GMPIConsumerMasterNodeT: remove unnecessary call to boost::asio::io_service::work
* #12 GMPIConsumerT: only specify logging level and let the user specify whether to log to file or to console by setting logging target
* #12 GMPIConsumer.cpp: make the target of log messages configurable through a command line argument.
* #12 GMPIConsumerT: make all constants configurable and update in-code documentation
* #12 incorporate GMPIConsumerT into Go2
* #12 GMPIConsumerMasterNodeT: move the log message which informs the user that the master node has started up back into the constructor, because now we already now the final size of threads in the constructor. This is because we no longer need to act on the command line options in GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT, because that is done by the wrapping GMPIConsumerT
* #12 examples: link MPI into examples if those examples use the Go2 class and the current build of geneva includes the MPI consumer
* #12 docs: update READMEs: reference example 16_GMPIConsumer/ in the examples XX_DirectXX/. Reference examples using the Go2 class in example 16_GMPIConsumer/
* #12 link MPI to all tests, benchmarks and examples in case the current build of geneva includes the mpi consumer
* #12 use singleton access to GMPIConsumerT in Go2.cpp in order to not call MPI_Init or MPI_Finalize more than once
* #12 uncomment instantiation of GMPIConsumerT
* #12 replace boost::asio::detail::thread_group with Gem::Common::GThreadPool
* #12 remove already resolved 'TODO'
* #12 create script to run command multiple times
* #12 make output of scripts/repeatedRun.sh prettier
* #12 fix non-deterministic bug when calling glogger from GConsumerSessionT
* #12 clarify comment
* #12 include string in file that uses string although string
* #12 create docker setup
* #12 also install 'which' in build-image
* #12 use multithreaded building for docker images
* #12 make it possible to set receivePollIntervalUSec for GMPIConsumerMasterNodeT to 0; add todo
* #12 link MPI in case of building with MPI to all examples and tests that require it
* #12 create common base image 'GenevaPrerequisites.Dockerfile' for geneva docker images
* #12 set up a docker image for the completed geneva build
* #12 add todo
* #12 fix various bugs in the docker setup; change file names; set up interactive shell in geneva_builder for developers
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 calling docker-compose down when running 'run-geneva-builder-interactive'
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 write readme for docker and docker-compose setup
* #12 fix local slurm setup, write information regarding this to the README.md
* #12 add todos
* #12 use std primitive types instead of boost primitive types
* #12 use std::chrono to measure timeouts and use std::this_thread::sleep_for for waiting
* #12 add boilerplate for example 17_GMPISubClients
* #12 make MPI subclients possible - example 17_GMPISubClients still contains bugs
* #12 do not finalize mpi if it has never been initialized
* #12 fix example 17_GMPISubClients
* #12 fix sub-communicator grouping in example 17_GMPIEvaluatedIndividual
* #12 use one cleanup thread to wait for completion of sessions in order to more quickly enable threads in thread-pool to be ready for new sessions
* #12 update in-code documentation for GMPIConsumerT
* #12 correct typos in comments
* #12 add comment
* #12 correct return value of initializeMPI method
* #12 increase maximum message size and add check if maximum message size is sufficient for runtime requirements
* #13 move docker setup to a seperate branch `13-docker-and-docker-compse-setup`
* #12 fix external iteration counter exception in benchmarks/geneva/GParallelisationOverhead
* #12 start implementation of performance benchmark for GAsioConsumerT and GMPIConsumerT
* #12 implement benchmark for asio-consumer and mpi-consumer. benchmarking asio-consumer is not impelmented yet
* #12 implement asio benchmark
* #12 draw multiple curves in one plot with different colors
* #12 plot legends
* #12 also plot graphs with nClients on x axis
* #12 set y-axis limits correctly in graph with subplots
* #12 extract method to set axis limits to GBasePlotter and use it also for Graph2ED in the GAsioMPIBenchmark
* #15 extract GAsioMPIBenchmark to branch 15
* #12 add init method to GBaseConsumerT
* #12 add todo in example 17
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 close sessions correctly on client side
* #12 fix: use m_handlerThreadPool to schedule tasks to pool instead of asio::post
* #12 remove deprecated todos
* #16 implement first version of GMPISubClientOptimizer
* #16 set default callback which throws an exception indicating that setting callback has been forgotten
* #16 create GMPISubClientIndividual
* #16 implement GMPISubClient example
* #16 rename and adjust config file for GMPISubClientOptimizer example
* #16 fix bug related to passing nullptr to scatter and gather as root process
* #16 use async calls to implement timeout
* #16 update readme
* #12 show worker node shutdown message also in release mode, because that is an important information which the user might want to see and use to adjust the workers timeout-configuration
* #16 make retriving client mode possible
* #16 do not initialize MPI if using a sub communicator
* #16 delete deprecated unused file
* #16 delete deprecated unused file
* #16 make sub-client job part of the individual
* #16 add comment
* #16 move GMPISubClientIndividual from geneva-individuals to geneva, because it is not a complete individual but an abstract base class for user defined individuals
* #16 make rank 0 of each subgroup be the Geneva client and the other ranks be the sub-client. Before this commit the rank n-1 of each subgroup was the geneva client, which is not intuitive
* #12 try to synchronize all proceses before starting consumer in order to not trigger timeouts on worker side if master node is not up and running yet
* #12 change unit of worker poll timeout to seconds, because any amount below one second is not useful and configuring it this way is more convenient
* #12 update in-code documentation for GMPIConsumerT
* #12 update examples/geneva/16_GMPIConsumer/README.md
* #16 extend documenation for examples/geneva/17_GMPISubClients/
* #16 correct typo in documenation for examples/geneva/17_GMPISubClients/
* #16 change std::cout to glogger
* #16 update examples/geneva/README
* #12 make synchronization configurable
* #16 correct typo
* #16 improve code readability
* #12 leave synchronization open to user, because synchronizing on startup causes issues in some edge cases like sub-client optimization
* #16 fix: parse GMPISubClientOptimizer configuration options from file
* #16 rewrite example 17_GMPISubClients to actually parallelize the work and measure the total wall time
* #16 rename class and associated files
* #16 change configuration for geneva example 17
* #16 fix: use shutdown signal instead of timeout for sub-client termination
* #12 change all clocks to std::chrono::steady_clock in GMPIConsumerT
* #12 improve code readability by making the time since a session is finished a property of the session class itself
* #16 reformat file GMPISubClientIndividual.cpp
* #16 reformat file GMPISubClientIndividual.hpp
* #16 fix: make client mode accessible from GMPISubClientIndividual and use this to correct error when calling getClientStatus() in client mode, because request object was not set
* #12 correct two mistakes in CMD messages which must have happened when copy pasting
* #12 fix bug in prepare build script which occured because of wrong variable name
* #12 wrap access to GMPIConsumer in standard consumers in compile time macro ifdef to make sure it is only compiled if building with MPI-Consumer
* Added a thank you message for Jonas' contribution
* Fixing compiler problems
* Fixing compiler problems
* Update of CHANGES to reflect new minimal cmake version
* Fixing compiler problems
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
Co-authored-by: Jonas-Wessner <81162699+Jonas-Wessner@users.noreply.github.com>
* #21 add 'cpp' file extension in Cmake files, which is a requirement after raising the Cmake version in #20 (#22)
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
* Added <optional> to some files to fix g++ 12.2 compilation problem with MPI consumer and examples (#23)
* Mpi consumer close all requests (#24)
* #0 make sure to always free all open MPI requests either by calling MPI_Cancel and MPI_Request_free or by calling MPI_Test until the status is completed
* #0 cancel MPI_IBarrier request if timeout triggered
* exclude all Clion build directories from git
* decrease CMAKE_MINIMUM_REQUIRED to 3.13 because this works as well and it is the version available at GSI's virgo cluster
* make it possible to set path to MPI installation through config file
* GMPIConsumerT.hpp: only emit finalized twice warning if it has been initialized.
* Use MPI_Request_free instead of MPI_Test to free request that is guaranteed to be completed
* #0 update logging output
---------
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
* 25 no mpi cancel for isend (#26)
* #25 begin restructuring to remove MPI_Cancel for ISend calls
* #25 continue restructure GMPIConsumerT to remove MPI_Cancel for MPI_ISend
* #25 shut down clients when receiving stop requests
* #25 pass correct arguments to instantiate nodes
* #25 add debug output
* #25 use MPI test instead of MPI Wait to await receive on worker
* #25 fix bug regarding uninitialized serialization mode in mpi sessions
* #25 change const to constexpr where possible
* #25 comment out uncecessary and deprecated code
* #25 simplify configuration struct and store const references to it in the worker and the master node classes to avoid copying and avoid unintentional modifications; determine the hardware recommendation for handler threads inside config struct constructor
* #25 fix deadlock at shutdown; do not await another response. The response has been received already after sending the request
* #25 clean up code: remove prints, remove commented out code
* #25 use MPI wait instead of test if no meaningful work to do on worker node
* #25 remove timeout in synchronization method
* #25 remove unused code segments
* #25 remove unused CLI args
* #25 clean up code and update documentation
* #25 use MPI_Wait intead of MPI_Request_free
* #25 capture shared pointer by value in lambda to make sure its does not go out of scope when the lambda function is executed (race condition)
* #25 remove unused members
* #25 remove debug statements
* Added CUDA example, restarted work on Geneva (#34)
* #12 add build directories to .gitignore
* #12 add boilerplate for MPIConsumerT
* #12 create initial example for MPIConsumerT
* #12 reformat file examples/geneva/16_GMPIConsumer/GMPIConsumer.cpp
* #12 add todos and remove unnecessary variables
* #12 create and start implement class 'GMPIConsumerT'
* #12 make GMPIConsumerT boilerplate syntactically correct and let it inherit from both classes: GBaseConsumerT and GBaseClientT. Override all virtual required methods with empty implementation.
* #12 implement all trivial but required methods in GMPIConsumerT
* #12 remove deprecated code from GMPIConsumerT.hpp and forward function calls of class 'GMPIConsumerT' to the classes 'GMPIConsumerMasterNodeT' and 'GMPIConsumerWorkerNodeT'
* #12 reconstruate basic GAsioConsumerT and GAsioConsumerClientT workflow as a comment
* #12 pass worldSize and worldRank to GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT for more flexible access to the information about the processes position in cluster
* #12 fix: make compilation of GMPIConsumerT.hpp conditional to whether the CMake variable BUILD_WITH_MPI_CONSUMER is set
* #12 todos and implementation draft in form of comments
* #12 enhance in-code documentation and make number of IO-threads for GMPIConsumerMasterNodeT configurable
* #12 send and receive test messages between master node and worker nodes
* #12 create new header and source files for helper functions regarding MPI
* #12 remove deprecated todo
* #12 implement processing of requests in GMPIConsumerWorkerNodet and GMPIConsumerMasterNodeT. So far compilation works but runtime errors occur.
* #12 remove deprecated todos
* #12 log more descriptive error messages in catch-blocks
* #12 fix: resolve runtime bug regarding serialization and not sending correct result from worker node
* #12 GMPIConsumerMasterNodeT: run receiver in dedicated thread outside of the thread group which handles single connections
* #12 use buffer allocation on heap with smart pointer for incoming requests on GMPIConsumerMasterNodeT
* #12 GMPIConsumerWorkerNodeT: use buffer on the heap managed by smart pointer for incoming messages (work items)
* #12 add todo
* #12 use NODATA variant in case broker has no work items instead of holding the connection until there is a work item availible. The disadvantage of the old approach is that we possibly hold connecitons for too long, which might be problematic if worker nodes crash or get stopped during the connection is alive
* #12 use appropriate amount of heap memory for incoming messsages
* #12 fix: initialize MPI in multithreaded mode which prevents concurrency error inside of the MPI library that had occurred inside of the GMPIConsumerMasterNodeT
* #12 clean up 16_GMPIConsumer/ example
* #12 adjust addCLOptions_
* #12 GMPIConsumerT: extract constants for poll intervals and timouts
* #12 update in-code documentation
* #12 add todos
* #12 improve start up terminal messages
* #12 GMPIConsumerT: use appropriate logging levels for messages
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerT: do not pass this by reference but only required methods as lambdas to fulfil principle of least priviledge
* #12 GMPIConsumerT: use GFILE logging level instead of STDOUT logging level for less important non-erroneous messages
* #12 GMPIConsumerT: always immediately initialize all variables
* #12 GMPIConsumerT: add todos
* #12 GMPIConsumerWorkerNodeT: shut down workers properly by using async communication. Use double buffering to retrieve next work item while previous work item is still being processed
* #12 GMPIConsumerT.cpp: add todos
* #12 GMPIConsumer: feat: add timeout for send operations in GMPIConsumerSessionT; refactor: extract configuration structs for the configuration of GMPIMasterNodeT and GMPIWorkerNodeT
* #12 remove already resolved 'TODO's
* #12 GMPIConsumerMasterNodeT: calculate recommendation for number of threads in thread pool handling open connections
* #12 GMPIConsumerWorkerNodeT: use member variables for mpi request handles, because program logic ensures exclusive access to those resources
* #12 GMPIConsumerWorkerNodeT: cancel active asynchronous requests in case an error occures
* #12 GMPIConsumerMasterNodeT: cancel pending requests in case of receiving a stop signal from caller on the main thread
* #12 GMPIConsumerMasterNodeT: remove unnecessary call to boost::asio::io_service::work
* #12 GMPIConsumerT: only specify logging level and let the user specify whether to log to file or to console by setting logging target
* #12 GMPIConsumer.cpp: make the target of log messages configurable through a command line argument.
* #12 GMPIConsumerT: make all constants configurable and update in-code documentation
* #12 incorporate GMPIConsumerT into Go2
* #12 GMPIConsumerMasterNodeT: move the log message which informs the user that the master node has started up back into the constructor, because now we already now the final size of threads in the constructor. This is because we no longer need to act on the command line options in GMPIConsumerWorkerNodeT and GMPIConsumerMasterNodeT, because that is done by the wrapping GMPIConsumerT
* #12 examples: link MPI into examples if those examples use the Go2 class and the current build of geneva includes the MPI consumer
* #12 docs: update READMEs: reference example 16_GMPIConsumer/ in the examples XX_DirectXX/. Reference examples using the Go2 class in example 16_GMPIConsumer/
* #12 link MPI to all tests, benchmarks and examples in case the current build of geneva includes the mpi consumer
* #12 use singleton access to GMPIConsumerT in Go2.cpp in order to not call MPI_Init or MPI_Finalize more than once
* #12 uncomment instantiation of GMPIConsumerT
* #12 replace boost::asio::detail::thread_group with Gem::Common::GThreadPool
* #12 remove already resolved 'TODO'
* #12 create script to run command multiple times
* #12 make output of scripts/repeatedRun.sh prettier
* #12 fix non-deterministic bug when calling glogger from GConsumerSessionT
* #12 clarify comment
* #12 include string in file that uses string although string
* #12 create docker setup
* #12 also install 'which' in build-image
* #12 use multithreaded building for docker images
* #12 make it possible to set receivePollIntervalUSec for GMPIConsumerMasterNodeT to 0; add todo
* #12 link MPI in case of building with MPI to all examples and tests that require it
* #12 create common base image 'GenevaPrerequisites.Dockerfile' for geneva docker images
* #12 set up a docker image for the completed geneva build
* #12 add todo
* #12 fix various bugs in the docker setup; change file names; set up interactive shell in geneva_builder for developers
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 calling docker-compose down when running 'run-geneva-builder-interactive'
* #12 improve output of geneva/scripts/Testing/repeatedRun.sh
* #12 write readme for docker and docker-compose setup
* #12 fix local slurm setup, write information regarding this to the README.md
* #12 add todos
* #12 use std primitive types instead of boost primitive types
* #12 use std::chrono to measure timeouts and use std::this_thread::sleep_for for waiting
* #12 add boilerplate for example 17_GMPISubClients
* #12 make MPI subclients possible - example 17_GMPISubClients still contains bugs
* #12 do not finalize mpi if it has never been initialized
* #12 fix example 17_GMPISubClients
* #12 fix sub-communicator grouping in example 17_GMPIEvaluatedIndividual
* #12 use one cleanup thread to wait for completion of sessions in order to more quickly enable threads in thread-pool to be ready for new sessions
* #12 update in-code documentation for GMPIConsumerT
* #12 correct typos in comments
* #12 add comment
* #12 correct return value of initializeMPI method
* #12 increase maximum message size and add check if maximum message size is sufficient for runtime requirements
* #13 move docker setup to a seperate branch `13-docker-and-docker-compse-setup`
* #12 fix external iteration counter exception in benchmarks/geneva/GParallelisationOverhead
* #12 start implementation of performance benchmark for GAsioConsumerT and GMPIConsumerT
* #12 implement benchmark for asio-consumer and mpi-consumer. benchmarking asio-consumer is not impelmented yet
* #12 implement asio benchmark
* #12 draw multiple curves in one plot with different colors
* #12 plot legends
* #12 also plot graphs with nClients on x axis
* #12 set y-axis limits correctly in graph with subplots
* #12 extract method to set axis limits to GBasePlotter and use it also for Graph2ED in the GAsioMPIBenchmark
* #15 extract GAsioMPIBenchmark to branch 15
* #12 add init method to GBaseConsumerT
* #12 add todo in example 17
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 remove already resolved 'TODO', add new 'TODO'
* #12 close sessions correctly on client side
* #12 fix: use m_handlerThreadPool to schedule tasks to pool instead of asio::post
* #12 remove deprecated todos
* #16 implement first version of GMPISubClientOptimizer
* #16 set default callback which throws an exception indicating that setting callback has been forgotten
* #16 create GMPISubClientIndividual
* #16 implement GMPISubClient example
* #16 rename and adjust config file for GMPISubClientOptimizer example
* #16 fix bug related to passing nullptr to scatter and gather as root process
* #16 use async calls to implement timeout
* #16 update readme
* #12 show worker node shutdown message also in release mode, because that is an important information which the user might want to see and use to adjust the workers timeout-configuration
* #16 make retriving client mode possible
* #16 do not initialize MPI if using a sub communicator
* #16 delete deprecated unused file
* #16 delete deprecated unused file
* #16 make sub-client job part of the individual
* #16 add comment
* #16 move GMPISubClientIndividual from geneva-individuals to geneva, because it is not a complete individual but an abstract base class for user defined individuals
* #16 make rank 0 of each subgroup be the Geneva client and the other ranks be the sub-client. Before this commit the rank n-1 of each subgroup was the geneva client, which is not intuitive
* #12 try to synchronize all proceses before starting consumer in order to not trigger timeouts on worker side if master node is not up and running yet
* #12 change unit of worker poll timeout to seconds, because any amount below one second is not useful and configuring it this way is more convenient
* #12 update in-code documentation for GMPIConsumerT
* #12 update examples/geneva/16_GMPIConsumer/README.md
* #16 extend documenation for examples/geneva/17_GMPISubClients/
* #16 correct typo in documenation for examples/geneva/17_GMPISubClients/
* #16 change std::cout to glogger
* #16 update examples/geneva/README
* #12 make synchronization configurable
* #16 correct typo
* #16 improve code readability
* #12 leave synchronization open to user, because synchronizing on startup causes issues in some edge cases like sub-client optimization
* #16 fix: parse GMPISubClientOptimizer configuration options from file
* #16 rewrite example 17_GMPISubClients to actually parallelize the work and measure the total wall time
* #16 rename class and associated files
* #16 change configuration for geneva example 17
* #16 fix: use shutdown signal instead of timeout for sub-client termination
* #12 change all clocks to std::chrono::steady_clock in GMPIConsumerT
* #12 improve code readability by making the time since a session is finished a property of the session class itself
* #16 reformat file GMPISubClientIndividual.cpp
* #16 reformat file GMPISubClientIndividual.hpp
* #16 fix: make client mode accessible from GMPISubClientIndividual and use this to correct error when calling getClientStatus() in client mode, because request object was not set
* #12 correct two mistakes in CMD messages which must have happened when copy pasting
* #12 fix bug in prepare build script which occured because of wrong variable name
* #12 wrap access to GMPIConsumer in standard consumers in compile time macro ifdef to make sure it is only compiled if building with MPI-Consumer
* Added a thank you message for Jonas' contribution
* Fixing compiler problems
* Fixing compiler problems
* Fixing compiler problems
* Added <optional> to some files to fix g++ 12.2 compilation problem with MPI consumer and examples
* Added some missing cstind headers to make code compile on new gcc in Ubuntu 23.10
* Working towards reviving the OpenCL code (OpenCL still does not compile, program does)
* Working towards reviving the OpenCL code (OpenCL still does not compile, program does)
* Removed old CUDA example
* Moved example to CUDA
* Debugging CUDA evaluation calculation
* Debugging CUDA evaluation calculation
* Centralized workers for local consumers
* Fixed triangle-alignment with width and height
* Moving all data definitions to float. RGB (unsigned char) is only involved when loading / saving images.
* Example is now fully float-based. RGB only occurs when reading/writing images from/to disc.
* float-based code again produces images
* Hunting a bug where evaluation values do not fit the evaluation
* Working on fixing process(), so that we can externally inject a result through the custom channels.
* Eradicating problems with external evaluation
* Some refactoring. process() can now accept external evaluations.
* Now only a range of best individuals is added to the priority queue
* Fixed a bug
* Working towards random number generation on the GPU
* Efficiency improvements
* Removed atomic adds
* Further fine-tuning
* Started to refactor Geneva
* Moving to C++20 and CMake 3.27
* Code now compiles with Boost 1.87
* Allowed for random initialization of triangle radius
* Update of CHANGES to reflect new minimal cmake version
* Removed some obsolete test code
* Removed some obsolete test code
* Working to revive tests
* Working to revive tests
* Fixing the build system to comply with Boost 1.90
* Fixing the build system to comply with Boost 1.90
* Dealing with linker issues related to CUDA
---------
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>
Co-authored-by: Jonas-Wessner <81162699+Jonas-Wessner@users.noreply.github.com>
* Update CHANGES file with current issues (#35)
Document current issues with the development release.
---------
Co-authored-by: denisbertini <d.bertini@gsi.de>
Co-authored-by: Ariel Garcia <a.garcia@gemfony.eu>
Co-authored-by: Jonas-Wessner <81162699+Jonas-Wessner@users.noreply.github.com>
Co-authored-by: Jonas Weßner <jonas.wessner@gmx.de>1 parent 15f1046 commit f8bf6a6
File tree
425 files changed
+49713
-69430
lines changed- CMakeModules
- benchmarks
- courtier
- GBufferPortTTest
- GConsumerPerformance
- geneva
- GBrokerOverhead
- config
- GBrokerSanityChecks
- config
- GOptimizationBenchmark
- config
- GParallelisationOverhead
- config
- GSerializationOverhead
- examples
- common
- CMakeModules
- GConfigFileCreation
- config
- courtier
- geneva
- 01_GSimpleOptimizer
- config
- 02_GParaboloid2D
- config
- 03_GParameterObjectUsagePatterns
- config
- 04_GMultiCriterionParabola
- config
- 06_GDirectEA
- config
- 06_GDirectSA
- config
- 06_GDirectSwarm
- config
- 07_GFunctionMinimizer
- config
- 08_GPostProcessing
- config
- 09_GNeuralNetwork
- DataSets
- config
- 10_GStarter
- Tests
- UnitTests
- config
- 11_GMetaOptimizer
- config
- 12_GExternalEvaluator
- config
- evaluator
- 13_GPluggableOptimizationMonitors
- config
- 14_GDependentConstraints
- config
- 15_GCUDAWorker
- Deprecated
- code
- config
- pictures
- 15_GOpenCLConsumer
- code
- config
- pictures
- 16_GMPIConsumer
- config
- 17_GMPISubClients
- config
- images
- CMakeModules
- hap
- 05_GHapUsagePatterns
- CMakeModules
- include
- common
- tests
- courtier
- geneva-individuals
- geneva
- tests
- hap
- tests
- incubator/AlgorithmIncubator
- incubatorlib
- licenses
- scripts
- Testing
- src
- common
- courtier
- geneva-individuals
- geneva
- hap
- tests
- common
- ManualTests
- GCanvasTest
- pictures
- GFormulaParserTest
- GHelperFunctionsTest
- GLoggerTest
- GPlotDesignerTest
- GThreadPoolTest
- UnitTests
- courtier
- Misc
- PerformanceTests
- geneva
- ManualTests
- GBooleanProbabilityTest
- GCommandContainerSerialization
- config
- GConstrainedFPTTest
- GConstrainedIntegerTTest
- GDoubleBiGaussAdaptorTest
- GDoubleGaussAdaptorTest
- GParameterPropertyParserTest
- GRandomWalk
- GResetToOptimizationStartTest
- config
- GSigmaSigmaAdaptionTest
- PerformanceTests
- GBrokerOverhead/config
- GBrokerSanityChecks/config
- GOptimizationBenchmark/config
- GParallelisationOverhead/config
- UnitTests
- hap
- DocuPrograms
- DependentDistributionTests
- PlotRNGDistributions
- ManualTests
- GRandomThroughput
- GRandomUsage
- UnitTests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
425 files changed
+49713
-69430
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
1 | 36 | | |
2 | 37 | | |
3 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
| 54 | + | |
54 | 55 | | |
55 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
| |||
77 | 81 | | |
78 | 82 | | |
79 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
80 | 90 | | |
81 | 91 | | |
82 | 92 | | |
| |||
87 | 97 | | |
88 | 98 | | |
89 | 99 | | |
90 | | - | |
| 100 | + | |
91 | 101 | | |
92 | 102 | | |
93 | 103 | | |
| |||
128 | 138 | | |
129 | 139 | | |
130 | 140 | | |
131 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
132 | 149 | | |
133 | | - | |
| 150 | + | |
134 | 151 | | |
135 | 152 | | |
136 | 153 | | |
137 | 154 | | |
138 | 155 | | |
139 | 156 | | |
140 | 157 | | |
| 158 | + | |
141 | 159 | | |
142 | 160 | | |
143 | 161 | | |
| |||
240 | 258 | | |
241 | 259 | | |
242 | 260 | | |
243 | | - | |
| 261 | + | |
244 | 262 | | |
245 | 263 | | |
246 | 264 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
2 | 36 | | |
3 | 37 | | |
4 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | | - | |
103 | | - | |
| 102 | + | |
| 103 | + | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
| 109 | + | |
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| |||
159 | 160 | | |
160 | 161 | | |
161 | 162 | | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
| 163 | + | |
| 164 | + | |
172 | 165 | | |
173 | 166 | | |
174 | 167 | | |
| |||
192 | 185 | | |
193 | 186 | | |
194 | 187 | | |
195 | | - | |
| 188 | + | |
196 | 189 | | |
197 | 190 | | |
198 | 191 | | |
| |||
201 | 194 | | |
202 | 195 | | |
203 | 196 | | |
204 | | - | |
205 | 197 | | |
206 | 198 | | |
207 | 199 | | |
| |||
238 | 230 | | |
239 | 231 | | |
240 | 232 | | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
248 | 241 | | |
249 | 242 | | |
250 | 243 | | |
| |||
444 | 437 | | |
445 | 438 | | |
446 | 439 | | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
447 | 443 | | |
448 | 444 | | |
449 | 445 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | 209 | | |
229 | 210 | | |
230 | 211 | | |
| |||
319 | 300 | | |
320 | 301 | | |
321 | 302 | | |
322 | | - | |
| 303 | + | |
323 | 304 | | |
324 | 305 | | |
325 | 306 | | |
326 | 307 | | |
327 | 308 | | |
328 | 309 | | |
329 | 310 | | |
330 | | - | |
| 311 | + | |
331 | 312 | | |
332 | 313 | | |
333 | 314 | | |
334 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
335 | 327 | | |
336 | 328 | | |
337 | 329 | | |
| |||
378 | 370 | | |
379 | 371 | | |
380 | 372 | | |
381 | | - | |
| 373 | + | |
382 | 374 | | |
383 | 375 | | |
384 | 376 | | |
| |||
0 commit comments