Hecatoncheir has been developed and tested on systems using the following versions:
- MPICH 4.0 or newer
- CMake 3.10 or newer
- C++17 standard
- Boost 1.71 or newer
- Ubuntu 22.04
Earlier or later versions of these dependencies may also work, but they have not been tested and are not officially supported.
Hecatoncheir can be deployed on any cluster of machines or virtual machines (VMs) that already have passwordless SSH configured between all nodes.
Before proceeding with deployment, edit the contents of the nodes file located in the project’s root directory.
Each line in this file should contain exactly one machine alias or IP address corresponding to a cluster node.
⚠️ Caution The first line of thenodesfile must specify the machine from which you will run Hecatoncheir (i.e., the host node).
This node should be the one you are currently connected to in the cluster.
Example:
node1
node2
192.168.1.15
192.168.1.16
To install Hecatoncheir, simply run:
./build.shThis script will compile Hecatoncheir and automatically synchronize the executables across all cluster nodes listed in the nodes file.
To build and enable Hecatoncheir’s graphical user interface (GUI), use the following command instead:
./build-ui.sh
The GUI build requires several additional libraries and tools.
The build-ui.sh script automatically downloads and installs (or updates) all required dependencies for you.
The following components will be installed:
- Ant Design 5.26.0
- React 19.1.0 and React DOM 19.1.0 for the core React runtime
- React Scripts 5.0.1 for build and development tools
- TypeScript 4.9.5 for static typing
- Ant Design 5.25.4 for UI components
- Testing Library for React component testing
- Web Vitals 2.1.4 for web performance metrics
- Various TypeScript type definitions
- Express 5.1.0, the main Node.js web framework for API routing
- CORS 2.8.5 for enabling cross-origin requests
- Multer 2.0.1 for handling file uploads
- Path-to-Regexp 6.2.1 for the route pattern matching utility
- Node.js latest version
All Hecatoncheir commands must be executed using MPICH’s mpirun (mpiexec) interface.
To prevent conflicts between different MPI implementations (e.g., OpenMPI), always use mpirun.mpich instead of simply mpirun, ensuring that the MPICH library is used.
To verify that Hecatoncheir was installed correctly and can be deployed across your cluster, run the provided test suite:
mpirun.mpich build/Hecatoncheir/test/test
If all tests PASS, your installation is complete and ready to use!
You can integrate Hecatoncheir into your own programs using its C++ API.
Simply include the main header file:
#include <Hecatoncheir.h>
and link Hecatoncheir to your project through CMake.
Example CMakeLists.txt and driver_template.cpp files are provided in the driver/ directory to demonstrate how to correctly include and link Hecatoncheir in your project.
A more detailed driver.cpp example is also available in the same directory, showcasing various usage scenarios of the C++ API.
Comprehensive class and method documentation including diagrams and code-level references is available on the project’s GitHub Pages:
https://thangeo.github.io/Hecatoncheir/index.html
More detailed instructions for Hecatoncheir's C++ API and method calls.
To use Hecatoncheir’s web-based graphical interface instead of its C++ API and avoid writing any code, run the start-dev.sh script generated by the build-ui.sh build process.
This script will automatically launch a web browser with Hecatoncheir’s GUI, allowing you to deploy it on your cluster, load data files, and execute queries entirely through the GUI using just your keyboard and mouse.
⚠️ Warning Currently, you need to edit the contents of theHecatoncheir/UI/frontend/.env.localfile so that it matches your host machine's (first machine in thenodesfile) IP address before running the scripts.
Coming soon...
This work has been supported by the Hellenic Foundation for Research and Innovation (H.F.R.I.) under the "2nd Call for H.F.R.I. Research Projects to support Faculty Members & Researchers" (Project Number: 2757).

