Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
de62bfa
add the pow_exp kernel and tested
Nov 23, 2023
b1c0165
all fixes
mahmoudElkarargyBS Jan 8, 2024
d8cefec
resolve threads plus some modifications
mahmoudElkarargyBS Jan 10, 2024
eea866b
Fix cuda
mahmoudElkarargyBS Jan 11, 2024
6884d5c
fix for linking cuda
mahmoudElkarargyBS Jan 11, 2024
cd7cda3
fix: hicma modifactions
mahmoudElkarargyBS Jan 11, 2024
f72d63c
try fixing Jenkines
mahmoudElkarargyBS Jan 16, 2024
210c06b
Adding R structure
mahmoudElkarargyBS Jan 16, 2024
5b604ba
fix:add doxygen in Jenkines
mahmoudElkarargyBS Jan 16, 2024
b1f0fbf
add test file for pow-exp kernel
Jan 16, 2024
b5d530e
test with -fpic
mahmoudElkarargyBS Jan 17, 2024
957dd0c
some modifications for HiCMA
mahmoudElkarargyBS Jan 17, 2024
fe1f893
updates
mahmoudElkarargyBS Jan 18, 2024
6a61410
try 2 gpu devices
mahmoudElkarargyBS Jan 20, 2024
346a0d8
back to starsh
mahmoudElkarargyBS Jan 22, 2024
2d3bc17
a potential fix to doxygen
mahmoudElkarargyBS Jan 22, 2024
5446c76
roll back
mahmoudElkarargyBS Jan 23, 2024
da8ad1f
test Rcpp
mahmoudElkarargyBS Feb 4, 2024
2ea149e
Fix Jenkines
mahmoudElkarargyBS Feb 4, 2024
6481324
fix errors
mahmoudElkarargyBS Feb 4, 2024
038e923
Updated in design
mahmoudElkarargyBS Feb 4, 2024
836ccbc
updates
mahmoudElkarargyBS Feb 11, 2024
21e826b
all release issue without src checks
mahmoudElkarargyBS Feb 11, 2024
f56153c
Merge pull request #1 from ecrc/FIX-release-issue-MK
mahmoudElkarargyBS Feb 11, 2024
18564f6
merge devel
mahmoudElkarargyBS Feb 11, 2024
c3fd36a
Merge pull request #2 from ecrc/kernel/pow-exp
mahmoudElkarargyBS Feb 11, 2024
ad24449
merge devel
mahmoudElkarargyBS Feb 11, 2024
b4c6e7d
adding MakeFile
mahmoudElkarargyBS Feb 11, 2024
f4e7e80
Updated MPI
mahmoudElkarargyBS Feb 12, 2024
96d6dde
Documentation
mahmoudElkarargyBS Feb 12, 2024
9f94224
fix examples tests
mahmoudElkarargyBS Feb 13, 2024
47f1c1b
modeling takes pointers
mahmoudElkarargyBS Feb 13, 2024
e308baf
example for read and write data
mahmoudElkarargyBS Feb 19, 2024
ae0d55c
fix: typpo in Initialize
mahmoudElkarargyBS Feb 26, 2024
0110a82
fix passing numbers of theta
mahmoudElkarargyBS Feb 26, 2024
9a4081f
fix: performance of gsl
mahmoudElkarargyBS Feb 27, 2024
2f65d19
fix: GPU support
mahmoudElkarargyBS Feb 27, 2024
d72800a
fix:mspe
mahmoudElkarargyBS Mar 3, 2024
96931cf
updated devel
mahmoudElkarargyBS Mar 3, 2024
7c6f095
R branch init
mahmoudElkarargyBS Mar 3, 2024
d77d5ab
merge devel
mahmoudElkarargyBS Mar 3, 2024
7b812bc
merge diffrence
mahmoudElkarargyBS Mar 3, 2024
ad9530d
tests:add r tests
mahmoudElkarargyBS Mar 3, 2024
e119bb2
fix tests
mahmoudElkarargyBS Mar 3, 2024
258785b
bug: in tlr
mahmoudElkarargyBS Mar 3, 2024
6486456
fix:tlr
mahmoudElkarargyBS Mar 3, 2024
9e9a28e
fix Jenkines
mahmoudElkarargyBS Mar 3, 2024
c61eaf1
fix: Jenkines in Documentation
mahmoudElkarargyBS Mar 4, 2024
06220cc
minior updates
mahmoudElkarargyBS Mar 4, 2024
ff4ce3e
huge refactoring
mahmoudElkarargyBS Mar 29, 2024
e7b412c
full R
mahmoudElkarargyBS Apr 2, 2024
93844aa
Merge pull request #3 from ecrc/FT-adding-Rcpp-MK
mahmoudElkarargyBS Apr 2, 2024
f8a670b
potential for tlr issue
Apr 5, 2024
3e47fb1
updates in heavy tests
mahmoudElkarargyBS Apr 14, 2024
8480f4f
a fix for gpu in gaussian kernels
mahmoudElkarargyBS Apr 14, 2024
ccacbf9
smalling tlr size
mahmoudElkarargyBS Apr 15, 2024
d268ca3
update sizes of heavy_tests
mahmoudElkarargyBS Apr 15, 2024
115c0a4
smalling size for gpu
mahmoudElkarargyBS Apr 15, 2024
128af20
minior changes
mahmoudElkarargyBS Apr 15, 2024
a629ef3
Huge refactoring in docs
mahmoudElkarargyBS Apr 21, 2024
00fafed
resolve threads
mahmoudElkarargyBS Apr 21, 2024
23c4c5f
fix MPI
mahmoudElkarargyBS Apr 21, 2024
6488a8a
resolve thread
mahmoudElkarargyBS Apr 21, 2024
746d875
updated R documentation
mahmoudElkarargyBS Apr 22, 2024
dec9d1a
documentation and hardware changes
mahmoudElkarargyBS Apr 28, 2024
2aaf398
finalized documentations
mahmoudElkarargyBS Apr 28, 2024
6daad10
minior change in Hardware
mahmoudElkarargyBS Apr 28, 2024
1864818
Ft test mpi mk (#6)
mahmoudElkarargyBS May 10, 2024
fd721cd
minior cleanings (#7)
mahmoudElkarargyBS May 12, 2024
aa56c1c
v1.1.0 (#4) (#8)
mahmoudElkarargyBS Jun 2, 2024
3fce527
Fix P & Q
mahmoudElkarargyBS Jun 2, 2024
e459c18
updates in R (#9)
mahmoudElkarargyBS Jul 3, 2024
58197b0
resolve conflicts
mahmoudElkarargyBS Jul 3, 2024
733723d
Fix error in R
mahmoudElkarargyBS Dec 31, 2024
f995a5f
Fix using of openblas (#16)
mahmoudElkarargyBS Jan 12, 2025
bd6fd82
resolve conflicts
mahmoudElkarargyBS Jan 12, 2025
0cdb463
Update main (#19)
mahmoudElkarargyBS Feb 18, 2025
a4df6cf
Fix for zero values in locations (#20)
mahmoudElkarargyBS Feb 18, 2025
a090ab2
update devel (#21)
mahmoudElkarargyBS Feb 18, 2025
eba9f5e
Fix tlr in R (#24)
mahmoudElkarargyBS Feb 24, 2025
8c655ab
Ft add accuracy tlr (#26)
mahmoudElkarargyBS Feb 25, 2025
e2af57e
change value of acc
mahmoudElkarargyBS Feb 25, 2025
97690fe
update params values
mahmoudElkarargyBS Feb 25, 2025
1f2c3b4
integrate netcdf
mahmoudElkarargyBS Mar 18, 2025
b566d3b
stage zero working
alihakam830 Aug 12, 2025
76080f6
update root cmake
alihakam830 Aug 12, 2025
a2c280f
add netcdf reading prints and update readme with example
alihakam830 Aug 13, 2025
83d7938
improve csv file writing
alihakam830 Aug 14, 2025
0f9ae89
add forcing data
alihakam830 Aug 14, 2025
67b9246
added parsec support
alihakam830 Sep 7, 2025
a25a9d1
Use random seed by default unless user specifies one (#29)
SAbdulah Sep 25, 2025
cb90515
Fix tlr bug fix om (#30)
omar-hmarzouk Sep 25, 2025
9dc7d01
added missing header to configurations for gcc v14.1.0 support (#38)
alihakam830 Sep 25, 2025
1f9ce46
requirment for CUDA <12
mahmoudElkarargyBS Sep 25, 2025
2cf4a09
resolve conflicts
mahmoudElkarargyBS Sep 25, 2025
2cab826
add requirments in README
mahmoudElkarargyBS Sep 28, 2025
9d673dc
added syncronized file writing and lat-lon parameters
alihakam830 Oct 7, 2025
7d91bd8
Cleaned stage-zero parsec generator and added the full pipeline script
alihakam830 Oct 28, 2025
471733e
Fixed data generator for parsec loader
alihakam830 Oct 28, 2025
7a692c2
added parsec operations support
alihakam830 Oct 31, 2025
30eaeb5
add new synthetic generator and parsec jdf files and configurations
alihakam830 Oct 31, 2025
7242fb6
fixed configurations and hardware parameters
alihakam830 Nov 2, 2025
f8eb9d8
add climate emulator flag in configure and fix stage-zero starpu ver…
alihakam830 Nov 10, 2025
3dfb5a8
add climate emulator flag in configure and fix stage-zero starpu ver…
alihakam830 Nov 10, 2025
f93501a
Merge branch 'Full-Pipeline' of github.com:ecrc/ExaGeoStatCPP into Fu…
alihakam830 Nov 10, 2025
a57c2f0
add starpu generator
alihakam830 Nov 10, 2025
f81c026
add starpu generator
alihakam830 Nov 10, 2025
fe3492a
guard Stage Zero API functions with USE_CLIMATE_EMULATOR flag
alihakam830 Nov 11, 2025
9b011b0
minior edits
mahmoudElkarargyBS Nov 11, 2025
0eb41b6
climate emulator flag
mahmoudElkarargyBS Nov 11, 2025
3fb2215
resolve devel conflicts
mahmoudElkarargyBS Nov 11, 2025
96cc915
remove example guards and minor stage zero fix
alihakam830 Nov 12, 2025
0849a00
resolve threads
mahmoudElkarargyBS Nov 12, 2025
78b1827
adding author and versions
alihakam830 Nov 12, 2025
e069fc6
minor fixes renaming mean trend removal
alihakam830 Nov 12, 2025
bd2774f
updating handout
mahmoudElkarargyBS Nov 13, 2025
c83526a
testing fixing stage zero results
mahmoudElkarargyBS Nov 18, 2025
fcb48c6
removing log
mahmoudElkarargyBS Nov 18, 2025
83eb2a8
Merge branch 'main' into Full-Pipeline
mahmoudElkarargyBS Nov 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion FullPipeline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,11 @@ for lat in $(seq 0 $((total_latitudes - 1))); do

echo "[$(date +%H:%M:%S)] Starting latitude ${lat}..."

# Run this latitude in background
# Run this latitude in background with environment variable set
(
# Set environment variable for the C++ program to know which latitude band this is
export STAGEZERO_LATITUDE_BAND=${lat}

mpirun -n ${mpi_processes} ${MeanTrendRemoval_BIN} \
--kernel=trend_model \
--lon=${lon} \
Expand Down
12 changes: 12 additions & 0 deletions examples/climate-emulator/ClimateEmulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@ using namespace exageostat::api;

int main(int argc, char **argv) {

// Climate Emulator requires PaRSEC runtime
#if DEFAULT_RUNTIME
std::cerr << "\n========================================\n";
std::cerr << "ERROR: Climate Emulator is NOT supported with StarPU runtime!\n";
std::cerr << "========================================\n\n";
std::cerr << "Climate Emulator requires PaRSEC runtime.\n";
std::cerr << "Please reconfigure and rebuild with PaRSEC:\n";
std::cerr << " ./configure -e --climate-emulator --use-parsec\n";
std::cerr << "Note: Stage Zero example works with both StarPU and PaRSEC.\n";
std::cerr << "========================================\n\n";
return 1;
#endif
// Create a new configurations object.
Configurations configurations;
// Initialize the arguments with the provided command line arguments
Expand Down
10 changes: 9 additions & 1 deletion examples/end-to-end/DataGeneration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,16 @@ int main(int argc, char **argv) {
Configurations configurations;
// Initialize the arguments with the provided command line arguments
configurations.InitializeArguments(argc, argv);
// Initialize the ExaGeoStat Hardware
// Initialize the ExaGeoStat Hardware based on runtime type
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
// Load data by either read from file or create synthetic data.
std::unique_ptr<ExaGeoStatData<double>> data;
exageostat::api::ExaGeoStat<double>::ExaGeoStatLoadData(configurations, data);
Expand Down
10 changes: 9 additions & 1 deletion examples/end-to-end/DataGenerationAndModeling.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,16 @@ int main(int argc, char **argv) {
Configurations configurations;
// Initialize the arguments with the provided command line arguments
configurations.InitializeArguments(argc, argv);
// Initialize the ExaGeoStat Hardware
// Initialize the ExaGeoStat Hardware based on runtime type
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
// Load data by either read from file or create synthetic data.
std::unique_ptr<ExaGeoStatData<double>> data;
ExaGeoStat<double>::ExaGeoStatLoadData(configurations, data);
Expand Down
10 changes: 9 additions & 1 deletion examples/end-to-end/DataGenerationAndPrediction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,16 @@ int main(int argc, char **argv) {
Configurations configurations;
// Initialize the arguments with the provided command line arguments
configurations.InitializeArguments(argc, argv);
// Initialize the ExaGeoStat Hardware
// Initialize the ExaGeoStat Hardware based on runtime type
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
// Load data by either read from file or create synthetic data.
std::unique_ptr<ExaGeoStatData<double>> data;
ExaGeoStat<double>::ExaGeoStatLoadData(configurations, data);
Expand Down
10 changes: 9 additions & 1 deletion examples/end-to-end/DataGenerationModelingAndPrediction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,16 @@ int main(int argc, char **argv) {
Configurations configurations;
// Initialize the arguments with the provided command line arguments
configurations.InitializeArguments(argc, argv);
// Initialize the ExaGeoStat Hardware
// Initialize the ExaGeoStat Hardware based on runtime type
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
// Load data by either read from file or create synthetic data.
std::unique_ptr<ExaGeoStatData<double>> data;
ExaGeoStat<double>::ExaGeoStatLoadData(configurations, data);
Expand Down
8 changes: 8 additions & 0 deletions examples/end-to-end/DataModeling.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,15 @@ int main(int argc, char **argv) {
configurations.SetDenseTileSize(dts);

// initialize ExaGeoStat hardware with the selected number of cores and gpus.
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
//Data Setup
std::unique_ptr<ExaGeoStatData<double>> data = std::make_unique<ExaGeoStatData<double>>(
configurations.GetProblemSize(), configurations.GetDimension());
Expand Down
8 changes: 8 additions & 0 deletions examples/end-to-end/DataPrediction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,15 @@ int main(int argc, char **argv) {
configurations.SetDenseTileSize(dts);

// initialize ExaGeoStat hardware with the selected number of cores and gpus.
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode
auto hardware = ExaGeoStatHardware(configurations.GetComputation(), configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(), configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode
auto hardware = ExaGeoStatHardware(configurations);
#endif
//Data Setup
std::unique_ptr<ExaGeoStatData<double>> data = std::make_unique<ExaGeoStatData<double>>(
configurations.GetProblemSize(), configurations.GetDimension());
Expand Down
13 changes: 12 additions & 1 deletion examples/mean-trend-removal/MeanTrendRemoval.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,19 @@ int main(int argc, char **argv) {
// Initialize the arguments with the provided command line arguments
configurations.InitializeArguments(argc, argv);

// Initialize the ExaGeoStat Hardware

// Initialize the ExaGeoStat Hardware based on runtime type
#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode - use constructor that initializes CHAMELEON
auto hardware = ExaGeoStatHardware(configurations.GetComputation(),
configurations.GetCoresNumber(),
configurations.GetGPUsNumbers(),
configurations.GetPGrid(),
configurations.GetQGrid());
#else
// PaRSEC mode - use constructor that initializes PaRSEC
auto hardware = ExaGeoStatHardware(configurations);
#endif

std::unique_ptr<ExaGeoStatData<double>> data;
// Generate Mean Trend Removal mean-trend data
Expand Down
1 change: 0 additions & 1 deletion src/configurations/Configurations.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ Configurations::Configurations() {
SetUpperBounds(theta);
SetEstimatedTheta(theta);
SetSeed(static_cast<unsigned int>(time(0)));
SetLogger(false);
SetUnknownObservationsNb(0);
SetApproximationMode(1);
SetActualObservationsFilePath("");
Expand Down
8 changes: 6 additions & 2 deletions src/data-generators/concrete/MeanTrendRemovalGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -742,9 +742,13 @@ double MeanTrendRemovalGenerator<T>::MLEAlgorithm(const std::vector<double> &aTh
throw std::runtime_error("Failed to create output directory: " + std::string(e.what()));
}

// Get latitude band from configuration
int latitude_band = mArgs.mConfigs->GetLatitudeBand();
// Get latitude band from environment variable
int latitude_band = 0;
int longitudes_per_lat = mArgs.mNumLocs;
const char* lat_env = getenv("STAGEZERO_LATITUDE_BAND");
if (lat_env) {
latitude_band = atoi(lat_env);
}

// Write Z files for each time slot
for (int time_slot = 0; time_slot < N; time_slot++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -854,9 +854,13 @@ double MeanTrendRemovalGeneratorParsec<T>::MLEAlgorithm(const std::vector<double
throw std::runtime_error("Failed to create output directory: " + std::string(e.what()));
}

// Get latitude band from configuration
int latitude_band = mArgs.mConfigs->GetLatitudeBand();
// Get latitude band from environment variable
int latitude_band = 0;
int longitudes_per_lat = mArgs.mNumLocs;
const char* lat_env = getenv("STAGEZERO_LATITUDE_BAND");
if (lat_env) {
latitude_band = atoi(lat_env);
}

// Write Z files for each time slot
for (int time_slot = 0; time_slot < N; time_slot++) {
Expand Down
13 changes: 2 additions & 11 deletions src/hardware/ExaGeoStatHardware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,6 @@ using namespace std;

ExaGeoStatHardware::ExaGeoStatHardware(exageostat::configurations::Configurations &aConfigurations){

#if DEFAULT_RUNTIME
// StarPU/CHAMELEON mode - initialize using the other constructor path
InitHardware(aConfigurations.GetComputation(),
aConfigurations.GetCoresNumber(),
aConfigurations.GetGPUsNumbers(),
aConfigurations.GetPGrid(),
aConfigurations.GetQGrid());
#else
// PaRSEC mode - use HiCMAX initialization
// These variables are named according to HiCMA-X inputs
const int N = aConfigurations.GetProblemSize();
const int t = aConfigurations.GetDenseTileSize();
Expand Down Expand Up @@ -106,6 +97,7 @@ ExaGeoStatHardware::ExaGeoStatHardware(exageostat::configurations::Configuration
strcpy(new_argv[i], new_args[i].c_str());
}

#if !DEFAULT_RUNTIME
int iparam[IPARAM_SIZEOF] = {0};
double dparam[DPARAM_SIZEOF];
char *cparam[CPARAM_SIZEOF];
Expand All @@ -116,9 +108,8 @@ ExaGeoStatHardware::ExaGeoStatHardware(exageostat::configurations::Configuration

mpParsecContext = hicma_parsec_init(new_argc, new_argv, iparam, dparam, cparam, this->mpHicmaParams.get(), this->mpParamsKernel.get(), this->mpHicmaData.get());
SetParsecMPIRank(this->mpHicmaParams->rank);

exageostat::helpers::CommunicatorMPI::GetInstance()->SetHardwareInitialization();
#endif
exageostat::helpers::CommunicatorMPI::GetInstance()->SetHardwareInitialization();
}

ExaGeoStatHardware::ExaGeoStatHardware(const Computation &aComputation, const int &aCoreNumber, const int &aGpuNumber,
Expand Down