diff --git a/benchmarks-compilados/aocc -O1/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O1/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O1/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O1/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O1/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O1/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O1/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O1/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O1/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O1/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O1/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O1/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O1/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O1/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O1/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O1/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O1/particle_filter/particle_filter b/benchmarks-compilados/aocc -O1/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O1/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O1/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O1/particle_filter/run b/benchmarks-compilados/aocc -O1/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O1/particle_filter/run rename to benchmarks-compilados/aocc -O1/particle-filter/run diff --git a/benchmarks-compilados/aocc -O2/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O2/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O2/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O2/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O2/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O2/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O2/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O2/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O2/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O2/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O2/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O2/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O2/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O2/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O2/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O2/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O2/particle_filter/particle_filter b/benchmarks-compilados/aocc -O2/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O2/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O2/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O2/particle_filter/run b/benchmarks-compilados/aocc -O2/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O2/particle_filter/run rename to benchmarks-compilados/aocc -O2/particle-filter/run diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/particle_filter b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/run b/benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle_filter/run rename to benchmarks-compilados/aocc -O3 -march=native -ffast-math/particle-filter/run diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/run b/benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/run rename to benchmarks-compilados/aocc -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/run diff --git a/benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O3 -march=native/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O3 -march=native/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O3 -march=native/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O3 -march=native/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -march=native/particle_filter/particle_filter b/benchmarks-compilados/aocc -O3 -march=native/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O3 -march=native/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O3 -march=native/particle_filter/run b/benchmarks-compilados/aocc -O3 -march=native/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -march=native/particle_filter/run rename to benchmarks-compilados/aocc -O3 -march=native/particle-filter/run diff --git a/benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O3 -mfma/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O3 -mfma/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O3 -mfma/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O3 -mfma/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O3 -mfma/particle_filter/particle_filter b/benchmarks-compilados/aocc -O3 -mfma/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O3 -mfma/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O3 -mfma/particle_filter/run b/benchmarks-compilados/aocc -O3 -mfma/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O3 -mfma/particle_filter/run rename to benchmarks-compilados/aocc -O3 -mfma/particle-filter/run diff --git a/benchmarks-compilados/aocc -O3/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/aocc -O3/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/aocc -O3/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/aocc -O3/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/aocc -O3/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/aocc -O3/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/aocc -O3/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/aocc -O3/euler3d_cpu_double/run b/benchmarks-compilados/aocc -O3/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/aocc -O3/euler3d_cpu_double/run rename to benchmarks-compilados/aocc -O3/euler3d-cpu-double/run diff --git a/benchmarks-compilados/aocc -O3/particle_filter/make_output.txt b/benchmarks-compilados/aocc -O3/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/aocc -O3/particle_filter/make_output.txt rename to benchmarks-compilados/aocc -O3/particle-filter/make_output.txt diff --git a/benchmarks-compilados/aocc -O3/particle_filter/particle_filter b/benchmarks-compilados/aocc -O3/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/aocc -O3/particle_filter/particle_filter rename to benchmarks-compilados/aocc -O3/particle-filter/particle-filter diff --git a/benchmarks-compilados/aocc -O3/particle_filter/run b/benchmarks-compilados/aocc -O3/particle-filter/run similarity index 100% rename from benchmarks-compilados/aocc -O3/particle_filter/run rename to benchmarks-compilados/aocc -O3/particle-filter/run diff --git a/benchmarks-compilados/clang -O1/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O1/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O1/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O1/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O1/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O1/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O1/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O1/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O1/euler3d_cpu_double/run b/benchmarks-compilados/clang -O1/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O1/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O1/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O1/particle_filter/make_output.txt b/benchmarks-compilados/clang -O1/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O1/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O1/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O1/particle_filter/particle_filter b/benchmarks-compilados/clang -O1/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O1/particle_filter/particle_filter rename to benchmarks-compilados/clang -O1/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O1/particle_filter/run b/benchmarks-compilados/clang -O1/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O1/particle_filter/run rename to benchmarks-compilados/clang -O1/particle-filter/run diff --git a/benchmarks-compilados/clang -O2/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O2/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O2/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O2/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O2/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O2/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O2/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O2/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O2/euler3d_cpu_double/run b/benchmarks-compilados/clang -O2/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O2/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O2/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O2/particle_filter/make_output.txt b/benchmarks-compilados/clang -O2/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O2/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O2/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O2/particle_filter/particle_filter b/benchmarks-compilados/clang -O2/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O2/particle_filter/particle_filter rename to benchmarks-compilados/clang -O2/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O2/particle_filter/run b/benchmarks-compilados/clang -O2/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O2/particle_filter/run rename to benchmarks-compilados/clang -O2/particle-filter/run diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/run b/benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/make_output.txt b/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/particle_filter b/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/particle_filter rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/run b/benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -ffast-math/particle_filter/run rename to benchmarks-compilados/clang -O3 -march=native -ffast-math/particle-filter/run diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/run b/benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle_filter/run rename to benchmarks-compilados/clang -O3 -march=native -fno-tree-vectorize -fno-tree-slp-vectorize/particle-filter/run diff --git a/benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/run b/benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O3 -march=native/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O3 -march=native/particle_filter/make_output.txt b/benchmarks-compilados/clang -O3 -march=native/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O3 -march=native/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -march=native/particle_filter/particle_filter b/benchmarks-compilados/clang -O3 -march=native/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/particle_filter/particle_filter rename to benchmarks-compilados/clang -O3 -march=native/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O3 -march=native/particle_filter/run b/benchmarks-compilados/clang -O3 -march=native/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O3 -march=native/particle_filter/run rename to benchmarks-compilados/clang -O3 -march=native/particle-filter/run diff --git a/benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/run b/benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O3 -mfma/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O3 -mfma/particle_filter/make_output.txt b/benchmarks-compilados/clang -O3 -mfma/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O3 -mfma/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O3 -mfma/particle_filter/particle_filter b/benchmarks-compilados/clang -O3 -mfma/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/particle_filter/particle_filter rename to benchmarks-compilados/clang -O3 -mfma/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O3 -mfma/particle_filter/run b/benchmarks-compilados/clang -O3 -mfma/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O3 -mfma/particle_filter/run rename to benchmarks-compilados/clang -O3 -mfma/particle-filter/run diff --git a/benchmarks-compilados/clang -O3/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/clang -O3/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/clang -O3/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/clang -O3/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/clang -O3/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/clang -O3/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/clang -O3/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/clang -O3/euler3d_cpu_double/run b/benchmarks-compilados/clang -O3/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/clang -O3/euler3d_cpu_double/run rename to benchmarks-compilados/clang -O3/euler3d-cpu-double/run diff --git a/benchmarks-compilados/clang -O3/particle_filter/make_output.txt b/benchmarks-compilados/clang -O3/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/clang -O3/particle_filter/make_output.txt rename to benchmarks-compilados/clang -O3/particle-filter/make_output.txt diff --git a/benchmarks-compilados/clang -O3/particle_filter/particle_filter b/benchmarks-compilados/clang -O3/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/clang -O3/particle_filter/particle_filter rename to benchmarks-compilados/clang -O3/particle-filter/particle-filter diff --git a/benchmarks-compilados/clang -O3/particle_filter/run b/benchmarks-compilados/clang -O3/particle-filter/run similarity index 100% rename from benchmarks-compilados/clang -O3/particle_filter/run rename to benchmarks-compilados/clang -O3/particle-filter/run diff --git a/benchmarks-compilados/gcc -O1/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O1/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O1/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O1/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O1/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O1/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O1/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O1/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O1/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O1/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O1/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O1/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O1/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O1/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O1/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O1/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O1/particle_filter/particle_filter b/benchmarks-compilados/gcc -O1/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O1/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O1/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O1/particle_filter/run b/benchmarks-compilados/gcc -O1/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O1/particle_filter/run rename to benchmarks-compilados/gcc -O1/particle-filter/run diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O2 -funroll-loops/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/particle_filter b/benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/run b/benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O2 -funroll-loops/particle_filter/run rename to benchmarks-compilados/gcc -O2 -funroll-loops/particle-filter/run diff --git a/benchmarks-compilados/gcc -O2/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O2/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O2/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O2/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O2/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O2/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O2/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O2/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O2/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O2/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O2/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O2/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O2/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O2/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O2/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O2/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O2/particle_filter/particle_filter b/benchmarks-compilados/gcc -O2/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O2/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O2/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O2/particle_filter/run b/benchmarks-compilados/gcc -O2/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O2/particle_filter/run rename to benchmarks-compilados/gcc -O2/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -ffast-math/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -fno-tree-vectorize -fno-tree-loop-vectorize -fno-tree-slp-vectorize/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native -mprefer-vector-width=256/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -march=native/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops -mfma/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3 -funroll-loops/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/run b/benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3 -funroll-loops/particle_filter/run rename to benchmarks-compilados/gcc -O3 -funroll-loops/particle-filter/run diff --git a/benchmarks-compilados/gcc -O3/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/gcc -O3/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/gcc -O3/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/gcc -O3/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/gcc -O3/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/gcc -O3/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/gcc -O3/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/gcc -O3/euler3d_cpu_double/run b/benchmarks-compilados/gcc -O3/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/gcc -O3/euler3d_cpu_double/run rename to benchmarks-compilados/gcc -O3/euler3d-cpu-double/run diff --git a/benchmarks-compilados/gcc -O3/particle_filter/make_output.txt b/benchmarks-compilados/gcc -O3/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/gcc -O3/particle_filter/make_output.txt rename to benchmarks-compilados/gcc -O3/particle-filter/make_output.txt diff --git a/benchmarks-compilados/gcc -O3/particle_filter/particle_filter b/benchmarks-compilados/gcc -O3/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/gcc -O3/particle_filter/particle_filter rename to benchmarks-compilados/gcc -O3/particle-filter/particle-filter diff --git a/benchmarks-compilados/gcc -O3/particle_filter/run b/benchmarks-compilados/gcc -O3/particle-filter/run similarity index 100% rename from benchmarks-compilados/gcc -O3/particle_filter/run rename to benchmarks-compilados/gcc -O3/particle-filter/run diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/run b/benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O1 -fp-model=precise/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/make_output.txt b/benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/particle_filter b/benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/particle_filter rename to benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/run b/benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O1 -fp-model=precise/particle_filter/run rename to benchmarks-compilados/icx -O1 -fp-model=precise/particle-filter/run diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/run b/benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O2 -fp-model=precise/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/make_output.txt b/benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/particle_filter b/benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/particle_filter rename to benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/run b/benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O2 -fp-model=precise/particle_filter/run rename to benchmarks-compilados/icx -O2 -fp-model=precise/particle-filter/run diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/run b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/make_output.txt b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/particle_filter b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/particle_filter rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/run b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle_filter/run rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=fast=2/particle-filter/run diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/run b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/make_output.txt b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/particle_filter b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/particle_filter rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/run b/benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle_filter/run rename to benchmarks-compilados/icx -O3 -fma -march=core-avx2 -fp-model=precise -no-vec/particle-filter/run diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/run b/benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O3 -fp-model=precise/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/make_output.txt b/benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/particle_filter b/benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/particle_filter rename to benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/run b/benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O3 -fp-model=precise/particle_filter/run rename to benchmarks-compilados/icx -O3 -fp-model=precise/particle-filter/run diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/run b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/make_output.txt b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/particle_filter b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/particle_filter rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/run b/benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle_filter/run rename to benchmarks-compilados/icx -O3 -march=core-avx2 -fp-model=precise/particle-filter/run diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/euler3d_cpu_double rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/euler3d-cpu-double diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/make_output.txt b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/make_output.txt rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/run b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/run similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d_cpu_double/run rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/euler3d-cpu-double/run diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/make_output.txt b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/make_output.txt similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/make_output.txt rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/make_output.txt diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/particle_filter b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/particle-filter similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/particle_filter rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/particle-filter diff --git a/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/run b/benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/run similarity index 100% rename from benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle_filter/run rename to benchmarks-compilados/icx -O3 -march=native -fp-model=precise/particle-filter/run diff --git a/openmp/euler3d-cpu-double/euler3d_cpu_double.cpp b/openmp/euler3d-cpu-double/euler3d-cpu-double.cpp similarity index 100% rename from openmp/euler3d-cpu-double/euler3d_cpu_double.cpp rename to openmp/euler3d-cpu-double/euler3d-cpu-double.cpp diff --git a/openmp/euler3d-cpu-double/euler3d_cpu.cpp b/openmp/euler3d-cpu-double/euler3d_cpu.cpp deleted file mode 100755 index be3ae7c9ec4c24585430d2bdd3987deb645785fc..0000000000000000000000000000000000000000 --- a/openmp/euler3d-cpu-double/euler3d_cpu.cpp +++ /dev/null @@ -1,516 +0,0 @@ -// Copyright 2009, Andrew Corrigan, acorriga@gmu.edu -// This code is from the AIAA-2009-4001 paper - -#include <iostream> -#include <fstream> - -#ifdef OMP_OFFLOAD -#pragma omp declare target -#endif -#include <cmath> -#ifdef OMP_OFFLOAD -#pragma omp end declare target -#endif - -#include <omp.h> - -struct float3 { float x, y, z; }; - -#ifndef block_length - #ifdef _OPENMP - #error "you need to define block_length" - #else - #define block_length 1 - #endif -#endif - -/* - * Options - * - */ -#define GAMMA 1.4 -#define iterations 2000 - -#define NDIM 3 -#define NNB 4 - -#define RK 3 // 3rd order RK -#define ff_mach 1.2 -#define deg_angle_of_attack 0.0f - -/* - * not options - */ -#define VAR_DENSITY 0 -#define VAR_MOMENTUM 1 -#define VAR_DENSITY_ENERGY (VAR_MOMENTUM+NDIM) -#define NVAR (VAR_DENSITY_ENERGY+1) - - -#ifdef restrict -#define __restrict restrict -#else -#define __restrict -#endif - -/* - * Generic functions - */ -template <typename T> -T* alloc(int N) -{ - return new T[N]; -} - -template <typename T> -void dealloc(T* array) -{ - delete[] array; -} - -#ifdef OMP_OFFLOAD -#pragma omp declare target -#endif -template <typename T> -void copy(T* dst, T* src, int N) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < N; i++) - { - dst[i] = src[i]; - } -} -#ifdef OMP_OFFLOAD -#pragma omp end declare target -#endif - - -void dump(float* variables, int nel, int nelr) -{ - - - { - std::ofstream file("density"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i + VAR_DENSITY*nelr] << std::endl; - } - - - { - std::ofstream file("momentum"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) - { - for(int j = 0; j != NDIM; j++) file << variables[i + (VAR_MOMENTUM+j)*nelr] << " "; - file << std::endl; - } - } - - { - std::ofstream file("density_energy"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i + VAR_DENSITY_ENERGY*nelr] << std::endl; - } - -} - -void initialize_variables(int nelr, float* variables, float* ff_variable) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - for(int j = 0; j < NVAR; j++) variables[i + j*nelr] = ff_variable[j]; - } -} - -#ifdef OMP_OFFLOAD -#pragma omp declare target -#endif -inline void compute_flux_contribution(float& density, float3& momentum, float& density_energy, float& pressure, float3& velocity, float3& fc_momentum_x, float3& fc_momentum_y, float3& fc_momentum_z, float3& fc_density_energy) -{ - fc_momentum_x.x = velocity.x*momentum.x + pressure; - fc_momentum_x.y = velocity.x*momentum.y; - fc_momentum_x.z = velocity.x*momentum.z; - - fc_momentum_y.x = fc_momentum_x.y; - fc_momentum_y.y = velocity.y*momentum.y + pressure; - fc_momentum_y.z = velocity.y*momentum.z; - - fc_momentum_z.x = fc_momentum_x.z; - fc_momentum_z.y = fc_momentum_y.z; - fc_momentum_z.z = velocity.z*momentum.z + pressure; - - float de_p = density_energy+pressure; - fc_density_energy.x = velocity.x*de_p; - fc_density_energy.y = velocity.y*de_p; - fc_density_energy.z = velocity.z*de_p; -} - -inline void compute_velocity(float& density, float3& momentum, float3& velocity) -{ - velocity.x = momentum.x / density; - velocity.y = momentum.y / density; - velocity.z = momentum.z / density; -} - -inline float compute_speed_sqd(float3& velocity) -{ - return velocity.x*velocity.x + velocity.y*velocity.y + velocity.z*velocity.z; -} - -inline float compute_pressure(float& density, float& density_energy, float& speed_sqd) -{ - return (float(GAMMA)-float(1.0f))*(density_energy - float(0.5f)*density*speed_sqd); -} - -inline float compute_speed_of_sound(float& density, float& pressure) -{ - return std::sqrt(float(GAMMA)*pressure/density); -} - - -void compute_step_factor(int nelr, float* __restrict variables, float* areas, float* __restrict step_factors) -{ - #pragma omp parallel for default(shared) schedule(auto) - for(int blk = 0; blk < nelr/block_length; ++blk) - { - int b_start = blk*block_length; - int b_end = (blk+1)*block_length > nelr ? nelr : (blk+1)*block_length; -#pragma omp simd - for(int i = b_start; i < b_end; i++) - { - float density = variables[i + VAR_DENSITY*nelr]; - - float3 momentum; - momentum.x = variables[i + (VAR_MOMENTUM+0)*nelr]; - momentum.y = variables[i + (VAR_MOMENTUM+1)*nelr]; - momentum.z = variables[i + (VAR_MOMENTUM+2)*nelr]; - - float density_energy = variables[i + VAR_DENSITY_ENERGY*nelr]; - float3 velocity; compute_velocity(density, momentum, velocity); - float speed_sqd = compute_speed_sqd(velocity); - float pressure = compute_pressure(density, density_energy, speed_sqd); - float speed_of_sound = compute_speed_of_sound(density, pressure); - - // dt = float(0.5f) * std::sqrt(areas[i]) / (||v|| + c).... but when we do time stepping, this later would need to be divided by the area, so we just do it all at once - step_factors[i] = float(0.5f) / (std::sqrt(areas[i]) * (std::sqrt(speed_sqd) + speed_of_sound)); - } - } -} - - -/* - * - * -*/ - -void compute_flux(int nelr, int* elements_surrounding_elements, float* normals, float* variables, float* fluxes, float* ff_variable, float3 ff_flux_contribution_momentum_x, float3 ff_flux_contribution_momentum_y, float3 ff_flux_contribution_momentum_z, float3 ff_flux_contribution_density_energy) -{ - const float smoothing_coefficient = float(0.2f); - - #pragma omp parallel for default(shared) schedule(auto) - for(int blk = 0; blk < nelr/block_length; ++blk) - { - int b_start = blk*block_length; - int b_end = (blk+1)*block_length > nelr ? nelr : (blk+1)*block_length; -#pragma omp simd - for(int i = b_start; i < b_end; ++i) - { - float density_i = variables[i + VAR_DENSITY*nelr]; - float3 momentum_i; - momentum_i.x = variables[i + (VAR_MOMENTUM+0)*nelr]; - momentum_i.y = variables[i + (VAR_MOMENTUM+1)*nelr]; - momentum_i.z = variables[i + (VAR_MOMENTUM+2)*nelr]; - - float density_energy_i = variables[i + VAR_DENSITY_ENERGY*nelr]; - - float3 velocity_i; compute_velocity(density_i, momentum_i, velocity_i); - float speed_sqd_i = compute_speed_sqd(velocity_i); - float speed_i = std::sqrt(speed_sqd_i); - float pressure_i = compute_pressure(density_i, density_energy_i, speed_sqd_i); - float speed_of_sound_i = compute_speed_of_sound(density_i, pressure_i); - float3 flux_contribution_i_momentum_x, flux_contribution_i_momentum_y, flux_contribution_i_momentum_z; - float3 flux_contribution_i_density_energy; - compute_flux_contribution(density_i, momentum_i, density_energy_i, pressure_i, velocity_i, flux_contribution_i_momentum_x, flux_contribution_i_momentum_y, flux_contribution_i_momentum_z, flux_contribution_i_density_energy); - - float flux_i_density = float(0.0f); - float3 flux_i_momentum; - flux_i_momentum.x = float(0.0f); - flux_i_momentum.y = float(0.0f); - flux_i_momentum.z = float(0.0f); - float flux_i_density_energy = float(0.0f); - - float3 velocity_nb; - float density_nb, density_energy_nb; - float3 momentum_nb; - float3 flux_contribution_nb_momentum_x, flux_contribution_nb_momentum_y, flux_contribution_nb_momentum_z; - float3 flux_contribution_nb_density_energy; - float speed_sqd_nb, speed_of_sound_nb, pressure_nb; -#pragma unroll - for(int j = 0; j < NNB; j++) - { - float3 normal; float normal_len; - float factor; - - int nb = elements_surrounding_elements[i + j*nelr]; - normal.x = normals[i + (j + 0*NNB)*nelr]; - normal.y = normals[i + (j + 1*NNB)*nelr]; - normal.z = normals[i + (j + 2*NNB)*nelr]; - normal_len = std::sqrt(normal.x*normal.x + normal.y*normal.y + normal.z*normal.z); - - if(nb >= 0) // a legitimate neighbor - { - density_nb = variables[nb + VAR_DENSITY*nelr]; - momentum_nb.x = variables[nb + (VAR_MOMENTUM+0)*nelr]; - momentum_nb.y = variables[nb + (VAR_MOMENTUM+1)*nelr]; - momentum_nb.z = variables[nb + (VAR_MOMENTUM+2)*nelr]; - density_energy_nb = variables[nb + VAR_DENSITY_ENERGY*nelr]; - compute_velocity(density_nb, momentum_nb, velocity_nb); - speed_sqd_nb = compute_speed_sqd(velocity_nb); - pressure_nb = compute_pressure(density_nb, density_energy_nb, speed_sqd_nb); - speed_of_sound_nb = compute_speed_of_sound(density_nb, pressure_nb); - compute_flux_contribution(density_nb, momentum_nb, density_energy_nb, pressure_nb, velocity_nb, flux_contribution_nb_momentum_x, flux_contribution_nb_momentum_y, flux_contribution_nb_momentum_z, flux_contribution_nb_density_energy); - - // artificial viscosity - factor = -normal_len*smoothing_coefficient*float(0.5f)*(speed_i + std::sqrt(speed_sqd_nb) + speed_of_sound_i + speed_of_sound_nb); - flux_i_density += factor*(density_i-density_nb); - flux_i_density_energy += factor*(density_energy_i-density_energy_nb); - flux_i_momentum.x += factor*(momentum_i.x-momentum_nb.x); - flux_i_momentum.y += factor*(momentum_i.y-momentum_nb.y); - flux_i_momentum.z += factor*(momentum_i.z-momentum_nb.z); - - // accumulate cell-centered fluxes - factor = float(0.5f)*normal.x; - flux_i_density += factor*(momentum_nb.x+momentum_i.x); - flux_i_density_energy += factor*(flux_contribution_nb_density_energy.x+flux_contribution_i_density_energy.x); - flux_i_momentum.x += factor*(flux_contribution_nb_momentum_x.x+flux_contribution_i_momentum_x.x); - flux_i_momentum.y += factor*(flux_contribution_nb_momentum_y.x+flux_contribution_i_momentum_y.x); - flux_i_momentum.z += factor*(flux_contribution_nb_momentum_z.x+flux_contribution_i_momentum_z.x); - - factor = float(0.5f)*normal.y; - flux_i_density += factor*(momentum_nb.y+momentum_i.y); - flux_i_density_energy += factor*(flux_contribution_nb_density_energy.y+flux_contribution_i_density_energy.y); - flux_i_momentum.x += factor*(flux_contribution_nb_momentum_x.y+flux_contribution_i_momentum_x.y); - flux_i_momentum.y += factor*(flux_contribution_nb_momentum_y.y+flux_contribution_i_momentum_y.y); - flux_i_momentum.z += factor*(flux_contribution_nb_momentum_z.y+flux_contribution_i_momentum_z.y); - - factor = float(0.5f)*normal.z; - flux_i_density += factor*(momentum_nb.z+momentum_i.z); - flux_i_density_energy += factor*(flux_contribution_nb_density_energy.z+flux_contribution_i_density_energy.z); - flux_i_momentum.x += factor*(flux_contribution_nb_momentum_x.z+flux_contribution_i_momentum_x.z); - flux_i_momentum.y += factor*(flux_contribution_nb_momentum_y.z+flux_contribution_i_momentum_y.z); - flux_i_momentum.z += factor*(flux_contribution_nb_momentum_z.z+flux_contribution_i_momentum_z.z); - } - else if(nb == -1) // a wing boundary - { - flux_i_momentum.x += normal.x*pressure_i; - flux_i_momentum.y += normal.y*pressure_i; - flux_i_momentum.z += normal.z*pressure_i; - } - else if(nb == -2) // a far field boundary - { - factor = float(0.5f)*normal.x; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+0]+momentum_i.x); - flux_i_density_energy += factor*(ff_flux_contribution_density_energy.x+flux_contribution_i_density_energy.x); - flux_i_momentum.x += factor*(ff_flux_contribution_momentum_x.x + flux_contribution_i_momentum_x.x); - flux_i_momentum.y += factor*(ff_flux_contribution_momentum_y.x + flux_contribution_i_momentum_y.x); - flux_i_momentum.z += factor*(ff_flux_contribution_momentum_z.x + flux_contribution_i_momentum_z.x); - - factor = float(0.5f)*normal.y; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+1]+momentum_i.y); - flux_i_density_energy += factor*(ff_flux_contribution_density_energy.y+flux_contribution_i_density_energy.y); - flux_i_momentum.x += factor*(ff_flux_contribution_momentum_x.y + flux_contribution_i_momentum_x.y); - flux_i_momentum.y += factor*(ff_flux_contribution_momentum_y.y + flux_contribution_i_momentum_y.y); - flux_i_momentum.z += factor*(ff_flux_contribution_momentum_z.y + flux_contribution_i_momentum_z.y); - - factor = float(0.5f)*normal.z; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+2]+momentum_i.z); - flux_i_density_energy += factor*(ff_flux_contribution_density_energy.z+flux_contribution_i_density_energy.z); - flux_i_momentum.x += factor*(ff_flux_contribution_momentum_x.z + flux_contribution_i_momentum_x.z); - flux_i_momentum.y += factor*(ff_flux_contribution_momentum_y.z + flux_contribution_i_momentum_y.z); - flux_i_momentum.z += factor*(ff_flux_contribution_momentum_z.z + flux_contribution_i_momentum_z.z); - - } - } - fluxes[i + VAR_DENSITY*nelr] = flux_i_density; - fluxes[i + (VAR_MOMENTUM+0)*nelr] = flux_i_momentum.x; - fluxes[i + (VAR_MOMENTUM+1)*nelr] = flux_i_momentum.y; - fluxes[i + (VAR_MOMENTUM+2)*nelr] = flux_i_momentum.z; - fluxes[i + VAR_DENSITY_ENERGY*nelr] = flux_i_density_energy; - - } - } -} - -void time_step(int j, int nelr, float* old_variables, float* variables, float* step_factors, float* fluxes) -{ - #pragma omp parallel for default(shared) schedule(auto) - for(int blk = 0; blk < nelr/block_length; ++blk) - { - int b_start = blk*block_length; - int b_end = (blk+1)*block_length > nelr ? nelr : (blk+1)*block_length; - #pragma omp simd - for(int i = b_start; i < b_end; ++i) - { - float factor = step_factors[i]/float(RK+1-j); - - variables[i + VAR_DENSITY*nelr] = old_variables[i + VAR_DENSITY*nelr] + factor*fluxes[i + VAR_DENSITY*nelr]; - variables[i + (VAR_MOMENTUM+0)*nelr] = old_variables[i + (VAR_MOMENTUM+0)*nelr] + factor*fluxes[i + (VAR_MOMENTUM+0)*nelr]; - variables[i + (VAR_MOMENTUM+1)*nelr] = old_variables[i + (VAR_MOMENTUM+1)*nelr] + factor*fluxes[i + (VAR_MOMENTUM+1)*nelr]; - variables[i + (VAR_MOMENTUM+2)*nelr] = old_variables[i + (VAR_MOMENTUM+2)*nelr] + factor*fluxes[i + (VAR_MOMENTUM+2)*nelr]; - variables[i + VAR_DENSITY_ENERGY*nelr] = old_variables[i + VAR_DENSITY_ENERGY*nelr] + factor*fluxes[i + VAR_DENSITY_ENERGY*nelr]; - - } - } -} -#ifdef OMP_OFFLOAD -#pragma omp end declare target -#endif -/* - * Main function - */ -int main(int argc, char** argv) -{ - if (argc < 2) - { - std::cout << "specify data file name" << std::endl; - return 0; - } - const char* data_file_name = argv[1]; - - float ff_variable[NVAR]; - float3 ff_flux_contribution_momentum_x, ff_flux_contribution_momentum_y, ff_flux_contribution_momentum_z, ff_flux_contribution_density_energy; - - // set far field conditions - { - const float angle_of_attack = float(3.1415926535897931 / 180.0f) * float(deg_angle_of_attack); - - ff_variable[VAR_DENSITY] = float(1.4); - - float ff_pressure = float(1.0f); - float ff_speed_of_sound = sqrt(GAMMA*ff_pressure / ff_variable[VAR_DENSITY]); - float ff_speed = float(ff_mach)*ff_speed_of_sound; - - float3 ff_velocity; - ff_velocity.x = ff_speed*float(cos((float)angle_of_attack)); - ff_velocity.y = ff_speed*float(sin((float)angle_of_attack)); - ff_velocity.z = 0.0f; - - ff_variable[VAR_MOMENTUM+0] = ff_variable[VAR_DENSITY] * ff_velocity.x; - ff_variable[VAR_MOMENTUM+1] = ff_variable[VAR_DENSITY] * ff_velocity.y; - ff_variable[VAR_MOMENTUM+2] = ff_variable[VAR_DENSITY] * ff_velocity.z; - - ff_variable[VAR_DENSITY_ENERGY] = ff_variable[VAR_DENSITY]*(float(0.5f)*(ff_speed*ff_speed)) + (ff_pressure / float(GAMMA-1.0f)); - - float3 ff_momentum; - ff_momentum.x = *(ff_variable+VAR_MOMENTUM+0); - ff_momentum.y = *(ff_variable+VAR_MOMENTUM+1); - ff_momentum.z = *(ff_variable+VAR_MOMENTUM+2); - compute_flux_contribution(ff_variable[VAR_DENSITY], ff_momentum, ff_variable[VAR_DENSITY_ENERGY], ff_pressure, ff_velocity, ff_flux_contribution_momentum_x, ff_flux_contribution_momentum_y, ff_flux_contribution_momentum_z, ff_flux_contribution_density_energy); - } - int nel; - int nelr; - - - // read in domain geometry - float* areas; - int* elements_surrounding_elements; - float* normals; - { - std::ifstream file(data_file_name); - - file >> nel; - nelr = block_length*((nel / block_length )+ std::min(1, nel % block_length)); - - areas = new float[nelr]; - elements_surrounding_elements = new int[nelr*NNB]; - normals = new float[NDIM*NNB*nelr]; - - // read in data - for(int i = 0; i < nel; i++) - { - file >> areas[i]; - for(int j = 0; j < NNB; j++) - { - file >> elements_surrounding_elements[i + j*nelr]; - if(elements_surrounding_elements[i+j*nelr] < 0) elements_surrounding_elements[i+j*nelr] = -1; - elements_surrounding_elements[i + j*nelr]--; //it's coming in with Fortran numbering - - for(int k = 0; k < NDIM; k++) - { - file >> normals[i + (j + k*NNB)*nelr]; - normals[i + (j + k*NNB)*nelr] = -normals[i + (j + k*NNB)*nelr]; - } - } - } - - // fill in remaining data - int last = nel-1; - for(int i = nel; i < nelr; i++) - { - areas[i] = areas[last]; - for(int j = 0; j < NNB; j++) - { - // duplicate the last element - elements_surrounding_elements[i + j*nelr] = elements_surrounding_elements[last + j*nelr]; - for(int k = 0; k < NDIM; k++) normals[i + (j + k*NNB)*nelr] = normals[last + (j + k*NNB)*nelr]; - } - } - } - - // Create arrays and set initial conditions - float* variables = alloc<float>(nelr*NVAR); - initialize_variables(nelr, variables, ff_variable); - - float* old_variables = alloc<float>(nelr*NVAR); - float* fluxes = alloc<float>(nelr*NVAR); - float* step_factors = alloc<float>(nelr); - - // these need to be computed the first time in order to compute time step - std::cout << "Starting..." << std::endl; -#ifdef _OPENMP - double start = omp_get_wtime(); - #ifdef OMP_OFFLOAD - #pragma omp target map(alloc: old_variables[0:(nelr*NVAR)]) map(to: nelr, areas[0:nelr], step_factors[0:nelr], elements_surrounding_elements[0:(nelr*NNB)], normals[0:(NDIM*NNB*nelr)], fluxes[0:(nelr*NVAR)], ff_variable[0:NVAR], ff_flux_contribution_momentum_x, ff_flux_contribution_momentum_y, ff_flux_contribution_momentum_z, ff_flux_contribution_density_energy) map(variables[0:(nelr*NVAR)]) - #endif -#endif - // Begin iterations - for(int i = 0; i < iterations; i++) - { - copy<float>(old_variables, variables, nelr*NVAR); - - // for the first iteration we compute the time step - compute_step_factor(nelr, variables, areas, step_factors); - - for(int j = 0; j < RK; j++) - { - compute_flux(nelr, elements_surrounding_elements, normals, variables, fluxes, ff_variable, ff_flux_contribution_momentum_x, ff_flux_contribution_momentum_y, ff_flux_contribution_momentum_z, ff_flux_contribution_density_energy); - time_step(j, nelr, old_variables, variables, step_factors, fluxes); - } - } - -#ifdef _OPENMP - double end = omp_get_wtime(); - std::cout << "Compute time: " << (end-start) << std::endl; -#endif - - - std::cout << "Saving solution..." << std::endl; - dump(variables, nel, nelr); - std::cout << "Saved solution..." << std::endl; - - - std::cout << "Cleaning up..." << std::endl; - dealloc<float>(areas); - dealloc<int>(elements_surrounding_elements); - dealloc<float>(normals); - - dealloc<float>(variables); - dealloc<float>(old_variables); - dealloc<float>(fluxes); - dealloc<float>(step_factors); - - std::cout << "Done..." << std::endl; - - return 0; -} diff --git a/openmp/euler3d-cpu-double/euler3d_cpu_double b/openmp/euler3d-cpu-double/euler3d_cpu_double deleted file mode 100755 index 1c872a88d13c16eab461ad0158516ee8f2dd0406..0000000000000000000000000000000000000000 Binary files a/openmp/euler3d-cpu-double/euler3d_cpu_double and /dev/null differ diff --git a/openmp/euler3d-cpu-double/makefile b/openmp/euler3d-cpu-double/makefile index cf98381a6c6dcc8132ac99884a9096ab19930767..b2b9de4a7f675e4659d2ef4d15a043819abc9178 100755 --- a/openmp/euler3d-cpu-double/makefile +++ b/openmp/euler3d-cpu-double/makefile @@ -8,7 +8,7 @@ CXXFLAGS = -O2 #all: euler3d_cpu euler3d_cpu_double pre_euler3d_cpu pre_euler3d_cpu_double euler3d_cpu_offload -all: euler3d_cpu_double +all: euler3d-cpu-double #euler3d: euler3d.cu # nvcc -Xptxas -v -O3 --gpu-architecture=compute_13 --gpu-code=compute_13 euler3d.cu -o euler3d -I$(CUDA_SDK_PATH)/common/inc -L$(CUDA_SDK_PATH)/lib -lcutil @@ -22,8 +22,8 @@ euler3d_cpu: euler3d_cpu.cpp euler3d_cpu_offload: $(CXX) $(CXXFLAGS) -DOMP_OFFLOAD -Dblock_length=$(MIC_OMP_NUM_THREADS) $(OMP_FLAG) -offload-option,mic,compiler,"-no-opt-prefetch" euler3d_cpu.cpp -o euler3d_cpu_offload -euler3d_cpu_double: euler3d_cpu_double.cpp - $(CXX) $(CXXFLAGS) -Dblock_length=$(OMP_NUM_THREADS) $(OMP_FLAG) euler3d_cpu_double.cpp -o euler3d_cpu_double +euler3d-cpu-double: euler3d-cpu-double.cpp + $(CXX) $(CXXFLAGS) -Dblock_length=$(OMP_NUM_THREADS) $(OMP_FLAG) euler3d-cpu-double.cpp -o euler3d-cpu-double #pre_euler3d: pre_euler3d.cu # nvcc -Xptxas -v -O3 --gpu-architecture=compute_13 --gpu-code=compute_13 pre_euler3d.cu -o pre_euler3d -I$(CUDA_SDK_PATH)/common/inc -L$(CUDA_SDK_PATH)/lib -lcutil @@ -43,7 +43,7 @@ clean: rm -f euler3d_cpu rm -f euler3d_cpu_offload # rm -f euler3d_double - rm -f euler3d_cpu_double + rm -f euler3d-cpu-double # rm -f pre_euler3d rm -f pre_euler3d_cpu diff --git a/openmp/euler3d-cpu-double/pre_euler3d_cpu.cpp b/openmp/euler3d-cpu-double/pre_euler3d_cpu.cpp deleted file mode 100755 index db21b772ab3e8019640d8db1677bebaea9fa3b22..0000000000000000000000000000000000000000 --- a/openmp/euler3d-cpu-double/pre_euler3d_cpu.cpp +++ /dev/null @@ -1,547 +0,0 @@ -// Copyright 2009, Andrew Corrigan, acorriga@gmu.edu -// This code is from the AIAA-2009-4001 paper - -#include <iostream> -#include <fstream> -#include <cmath> -#include <omp.h> - -struct float3 { float x, y, z; }; - -#ifndef block_length -#error "you need to define block_length" -#endif - -/* - * Options - * - */ -#define GAMMA 1.4 -#define iterations 2000 - -#define NDIM 3 -#define NNB 4 - -#define RK 3 // 3rd order RK -#define ff_mach 1.2 -#define deg_angle_of_attack 0.0f - -/* - * not options - */ -#define VAR_DENSITY 0 -#define VAR_MOMENTUM 1 -#define VAR_DENSITY_ENERGY (VAR_MOMENTUM+NDIM) -#define NVAR (VAR_DENSITY_ENERGY+1) - - -/* - * Generic functions - */ -template <typename T> -T* alloc(int N) -{ - return new T[N]; -} - -template <typename T> -void dealloc(T* array) -{ - delete[] array; -} - -template <typename T> -void copy(T* dst, T* src, int N) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < N; i++) - { - dst[i] = src[i]; - } -} - - -void dump(float* variables, int nel, int nelr) -{ - - - { - std::ofstream file("density"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i*NVAR + VAR_DENSITY] << std::endl; - } - - - { - std::ofstream file("momentum"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) - { - for(int j = 0; j != NDIM; j++) file << variables[i*NVAR + (VAR_MOMENTUM+j)] << " "; - file << std::endl; - } - } - - { - std::ofstream file("density_energy"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i*NVAR + VAR_DENSITY_ENERGY] << std::endl; - } - -} - -/* - * Element-based Cell-centered FVM solver functions - */ -float ff_variable[NVAR]; -float3 ff_fc_momentum_x; -float3 ff_fc_momentum_y; -float3 ff_fc_momentum_z; -float3 ff_fc_density_energy; - - -void initialize_variables(int nelr, float* variables) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - for(int j = 0; j < NVAR; j++) variables[i*NVAR + j] = ff_variable[j]; - } -} - -inline void compute_flux_contribution(float& density, float3& momentum, float& density_energy, float& pressure, float3& velocity, float3& fc_momentum_x, float3& fc_momentum_y, float3& fc_momentum_z, float3& fc_density_energy) -{ - fc_momentum_x.x = velocity.x*momentum.x + pressure; - fc_momentum_x.y = velocity.x*momentum.y; - fc_momentum_x.z = velocity.x*momentum.z; - - fc_momentum_y.x = fc_momentum_x.y; - fc_momentum_y.y = velocity.y*momentum.y + pressure; - fc_momentum_y.z = velocity.y*momentum.z; - - fc_momentum_z.x = fc_momentum_x.z; - fc_momentum_z.y = fc_momentum_y.z; - fc_momentum_z.z = velocity.z*momentum.z + pressure; - - float de_p = density_energy+pressure; - fc_density_energy.x = velocity.x*de_p; - fc_density_energy.y = velocity.y*de_p; - fc_density_energy.z = velocity.z*de_p; -} - -inline void compute_velocity(float& density, float3& momentum, float3& velocity) -{ - velocity.x = momentum.x / density; - velocity.y = momentum.y / density; - velocity.z = momentum.z / density; -} - -inline float compute_speed_sqd(float3& velocity) -{ - return velocity.x*velocity.x + velocity.y*velocity.y + velocity.z*velocity.z; -} - -inline float compute_pressure(float& density, float& density_energy, float& speed_sqd) -{ - return (float(GAMMA)-float(1.0f))*(density_energy - float(0.5f)*density*speed_sqd); -} - -inline float compute_speed_of_sound(float& density, float& pressure) -{ - return std::sqrt(float(GAMMA)*pressure/density); -} - - - -void compute_step_factor(int nelr, float* variables, float* areas, float* step_factors) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - float density = variables[NVAR*i + VAR_DENSITY]; - - float3 momentum; - momentum.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - - float density_energy = variables[NVAR*i + VAR_DENSITY_ENERGY]; - float3 velocity; compute_velocity(density, momentum, velocity); - float speed_sqd = compute_speed_sqd(velocity); - float pressure = compute_pressure(density, density_energy, speed_sqd); - float speed_of_sound = compute_speed_of_sound(density, pressure); - - // dt = float(0.5f) * std::sqrt(areas[i]) / (||v|| + c).... but when we do time stepping, this later would need to be divided by the area, so we just do it all at once - step_factors[i] = float(0.5f) / (std::sqrt(areas[i]) * (std::sqrt(speed_sqd) + speed_of_sound)); - } -} - -void compute_flux_contributions(int nelr, float* variables, float* fc_momentum_x, float* fc_momentum_y, float* fc_momentum_z, float* fc_density_energy) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - float density_i = variables[NVAR*i + VAR_DENSITY]; - float3 momentum_i; - momentum_i.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum_i.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum_i.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - float density_energy_i = variables[NVAR*i + VAR_DENSITY_ENERGY]; - - float3 velocity_i; compute_velocity(density_i, momentum_i, velocity_i); - float speed_sqd_i = compute_speed_sqd(velocity_i); - float speed_i = sqrtf(speed_sqd_i); - float pressure_i = compute_pressure(density_i, density_energy_i, speed_sqd_i); - float speed_of_sound_i = compute_speed_of_sound(density_i, pressure_i); - float3 fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z; - float3 fc_i_density_energy; - compute_flux_contribution(density_i, momentum_i, density_energy_i, pressure_i, velocity_i, fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z, fc_i_density_energy); - - fc_momentum_x[i*NDIM + 0] = fc_i_momentum_x.x; - fc_momentum_x[i*NDIM + 1] = fc_i_momentum_x.y; - fc_momentum_x[i*NDIM+ 2] = fc_i_momentum_x.z; - - fc_momentum_y[i*NDIM+ 0] = fc_i_momentum_y.x; - fc_momentum_y[i*NDIM+ 1] = fc_i_momentum_y.y; - fc_momentum_y[i*NDIM+ 2] = fc_i_momentum_y.z; - - - fc_momentum_z[i*NDIM+ 0] = fc_i_momentum_z.x; - fc_momentum_z[i*NDIM+ 1] = fc_i_momentum_z.y; - fc_momentum_z[i*NDIM+ 2] = fc_i_momentum_z.z; - - fc_density_energy[i*NDIM+ 0] = fc_i_density_energy.x; - fc_density_energy[i*NDIM+ 1] = fc_i_density_energy.y; - fc_density_energy[i*NDIM+ 2] = fc_i_density_energy.z; - } - -} - -/* - * - * -*/ - -void compute_flux(int nelr, int* elements_surrounding_elements, float* normals, float* variables, float* fc_momentum_x, float* fc_momentum_y, float* fc_momentum_z, float* fc_density_energy, float* fluxes) -{ - const float smoothing_coefficient = float(0.2f); - - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - int j, nb; - float3 normal; float normal_len; - float factor; - - float density_i = variables[NVAR*i + VAR_DENSITY]; - float3 momentum_i; - momentum_i.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum_i.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum_i.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - float density_energy_i = variables[NVAR*i + VAR_DENSITY_ENERGY]; - - float3 velocity_i; compute_velocity(density_i, momentum_i, velocity_i); - float speed_sqd_i = compute_speed_sqd(velocity_i); - float speed_i = std::sqrt(speed_sqd_i); - float pressure_i = compute_pressure(density_i, density_energy_i, speed_sqd_i); - float speed_of_sound_i = compute_speed_of_sound(density_i, pressure_i); - float3 fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z; - float3 fc_i_density_energy; - - fc_i_momentum_x.x = fc_momentum_x[i*NDIM + 0]; - fc_i_momentum_x.y = fc_momentum_x[i*NDIM + 1]; - fc_i_momentum_x.z = fc_momentum_x[i*NDIM + 2]; - - fc_i_momentum_y.x = fc_momentum_y[i*NDIM + 0]; - fc_i_momentum_y.y = fc_momentum_y[i*NDIM + 1]; - fc_i_momentum_y.z = fc_momentum_y[i*NDIM + 2]; - - fc_i_momentum_z.x = fc_momentum_z[i*NDIM + 0]; - fc_i_momentum_z.y = fc_momentum_z[i*NDIM + 1]; - fc_i_momentum_z.z = fc_momentum_z[i*NDIM + 2]; - - fc_i_density_energy.x = fc_density_energy[i*NDIM + 0]; - fc_i_density_energy.y = fc_density_energy[i*NDIM + 1]; - fc_i_density_energy.z = fc_density_energy[i*NDIM + 2]; - - float flux_i_density = float(0.0f); - float3 flux_i_momentum; - flux_i_momentum.x = float(0.0f); - flux_i_momentum.y = float(0.0f); - flux_i_momentum.z = float(0.0f); - float flux_i_density_energy = float(0.0f); - - float3 velocity_nb; - float density_nb, density_energy_nb; - float3 momentum_nb; - float3 fc_nb_momentum_x, fc_nb_momentum_y, fc_nb_momentum_z; - float3 fc_nb_density_energy; - float speed_sqd_nb, speed_of_sound_nb, pressure_nb; - - for(j = 0; j < NNB; j++) - { - nb = elements_surrounding_elements[i*NNB + j]; - normal.x = normals[(i*NNB + j)*NDIM + 0]; - normal.y = normals[(i*NNB + j)*NDIM + 1]; - normal.z = normals[(i*NNB + j)*NDIM + 2]; - normal_len = std::sqrt(normal.x*normal.x + normal.y*normal.y + normal.z*normal.z); - - if(nb >= 0) // a legitimate neighbor - { - density_nb = variables[nb*NVAR + VAR_DENSITY]; - momentum_nb.x = variables[nb*NVAR + (VAR_MOMENTUM+0)]; - momentum_nb.y = variables[nb*NVAR + (VAR_MOMENTUM+1)]; - momentum_nb.z = variables[nb*NVAR + (VAR_MOMENTUM+2)]; - density_energy_nb = variables[nb*NVAR + VAR_DENSITY_ENERGY]; - compute_velocity(density_nb, momentum_nb, velocity_nb); - speed_sqd_nb = compute_speed_sqd(velocity_nb); - pressure_nb = compute_pressure(density_nb, density_energy_nb, speed_sqd_nb); - speed_of_sound_nb = compute_speed_of_sound(density_nb, pressure_nb); - fc_nb_momentum_x.x = fc_momentum_x[nb*NDIM + 0]; - fc_nb_momentum_x.y = fc_momentum_x[nb*NDIM + 1]; - fc_nb_momentum_x.z = fc_momentum_x[nb*NDIM + 2]; - - fc_nb_momentum_y.x = fc_momentum_y[nb*NDIM + 0]; - fc_nb_momentum_y.y = fc_momentum_y[nb*NDIM + 1]; - fc_nb_momentum_y.z = fc_momentum_y[nb*NDIM + 2]; - - fc_nb_momentum_z.x = fc_momentum_z[nb*NDIM + 0]; - fc_nb_momentum_z.y = fc_momentum_z[nb*NDIM + 1]; - fc_nb_momentum_z.z = fc_momentum_z[nb*NDIM + 2]; - - fc_nb_density_energy.x = fc_density_energy[nb*NDIM + 0]; - fc_nb_density_energy.y = fc_density_energy[nb*NDIM + 1]; - fc_nb_density_energy.z = fc_density_energy[nb*NDIM + 2]; - - // artificial viscosity - factor = -normal_len*smoothing_coefficient*float(0.5f)*(speed_i + std::sqrt(speed_sqd_nb) + speed_of_sound_i + speed_of_sound_nb); - flux_i_density += factor*(density_i-density_nb); - flux_i_density_energy += factor*(density_energy_i-density_energy_nb); - flux_i_momentum.x += factor*(momentum_i.x-momentum_nb.x); - flux_i_momentum.y += factor*(momentum_i.y-momentum_nb.y); - flux_i_momentum.z += factor*(momentum_i.z-momentum_nb.z); - - // accumulate cell-centered fluxes - factor = float(0.5f)*normal.x; - flux_i_density += factor*(momentum_nb.x+momentum_i.x); - flux_i_density_energy += factor*(fc_nb_density_energy.x+fc_i_density_energy.x); - flux_i_momentum.x += factor*(fc_nb_momentum_x.x+fc_i_momentum_x.x); - flux_i_momentum.y += factor*(fc_nb_momentum_y.x+fc_i_momentum_y.x); - flux_i_momentum.z += factor*(fc_nb_momentum_z.x+fc_i_momentum_z.x); - - factor = float(0.5f)*normal.y; - flux_i_density += factor*(momentum_nb.y+momentum_i.y); - flux_i_density_energy += factor*(fc_nb_density_energy.y+fc_i_density_energy.y); - flux_i_momentum.x += factor*(fc_nb_momentum_x.y+fc_i_momentum_x.y); - flux_i_momentum.y += factor*(fc_nb_momentum_y.y+fc_i_momentum_y.y); - flux_i_momentum.z += factor*(fc_nb_momentum_z.y+fc_i_momentum_z.y); - - factor = float(0.5f)*normal.z; - flux_i_density += factor*(momentum_nb.z+momentum_i.z); - flux_i_density_energy += factor*(fc_nb_density_energy.z+fc_i_density_energy.z); - flux_i_momentum.x += factor*(fc_nb_momentum_x.z+fc_i_momentum_x.z); - flux_i_momentum.y += factor*(fc_nb_momentum_y.z+fc_i_momentum_y.z); - flux_i_momentum.z += factor*(fc_nb_momentum_z.z+fc_i_momentum_z.z); - } - else if(nb == -1) // a wing boundary - { - flux_i_momentum.x += normal.x*pressure_i; - flux_i_momentum.y += normal.y*pressure_i; - flux_i_momentum.z += normal.z*pressure_i; - } - else if(nb == -2) // a far field boundary - { - factor = float(0.5f)*normal.x; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+0]+momentum_i.x); - flux_i_density_energy += factor*(ff_fc_density_energy.x+fc_i_density_energy.x); - flux_i_momentum.x += factor*(ff_fc_momentum_x.x + fc_i_momentum_x.x); - flux_i_momentum.y += factor*(ff_fc_momentum_y.x + fc_i_momentum_y.x); - flux_i_momentum.z += factor*(ff_fc_momentum_z.x + fc_i_momentum_z.x); - - factor = float(0.5f)*normal.y; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+1]+momentum_i.y); - flux_i_density_energy += factor*(ff_fc_density_energy.y+fc_i_density_energy.y); - flux_i_momentum.x += factor*(ff_fc_momentum_x.y + fc_i_momentum_x.y); - flux_i_momentum.y += factor*(ff_fc_momentum_y.y + fc_i_momentum_y.y); - flux_i_momentum.z += factor*(ff_fc_momentum_z.y + fc_i_momentum_z.y); - - factor = float(0.5f)*normal.z; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+2]+momentum_i.z); - flux_i_density_energy += factor*(ff_fc_density_energy.z+fc_i_density_energy.z); - flux_i_momentum.x += factor*(ff_fc_momentum_x.z + fc_i_momentum_x.z); - flux_i_momentum.y += factor*(ff_fc_momentum_y.z + fc_i_momentum_y.z); - flux_i_momentum.z += factor*(ff_fc_momentum_z.z + fc_i_momentum_z.z); - - } - } - - fluxes[i*NVAR + VAR_DENSITY] = flux_i_density; - fluxes[i*NVAR + (VAR_MOMENTUM+0)] = flux_i_momentum.x; - fluxes[i*NVAR + (VAR_MOMENTUM+1)] = flux_i_momentum.y; - fluxes[i*NVAR + (VAR_MOMENTUM+2)] = flux_i_momentum.z; - fluxes[i*NVAR + VAR_DENSITY_ENERGY] = flux_i_density_energy; - } -} - -void time_step(int j, int nelr, float* old_variables, float* variables, float* step_factors, float* fluxes) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - float factor = step_factors[i]/float(RK+1-j); - - variables[NVAR*i + VAR_DENSITY] = old_variables[NVAR*i + VAR_DENSITY] + factor*fluxes[NVAR*i + VAR_DENSITY]; - variables[NVAR*i + VAR_DENSITY_ENERGY] = old_variables[NVAR*i + VAR_DENSITY_ENERGY] + factor*fluxes[NVAR*i + VAR_DENSITY_ENERGY]; - variables[NVAR*i + (VAR_MOMENTUM+0)] = old_variables[NVAR*i + (VAR_MOMENTUM+0)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+0)]; - variables[NVAR*i + (VAR_MOMENTUM+1)] = old_variables[NVAR*i + (VAR_MOMENTUM+1)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+1)]; - variables[NVAR*i + (VAR_MOMENTUM+2)] = old_variables[NVAR*i + (VAR_MOMENTUM+2)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+2)]; - } -} -/* - * Main function - */ -int main(int argc, char** argv) -{ - if (argc < 2) - { - std::cout << "specify data file name" << std::endl; - return 0; - } - const char* data_file_name = argv[1]; - - // set far field conditions - { - const float angle_of_attack = float(3.1415926535897931 / 180.0f) * float(deg_angle_of_attack); - - ff_variable[VAR_DENSITY] = float(1.4); - - float ff_pressure = float(1.0f); - float ff_speed_of_sound = sqrt(GAMMA*ff_pressure / ff_variable[VAR_DENSITY]); - float ff_speed = float(ff_mach)*ff_speed_of_sound; - - float3 ff_velocity; - ff_velocity.x = ff_speed*float(cos((float)angle_of_attack)); - ff_velocity.y = ff_speed*float(sin((float)angle_of_attack)); - ff_velocity.z = 0.0f; - - ff_variable[VAR_MOMENTUM+0] = ff_variable[VAR_DENSITY] * ff_velocity.x; - ff_variable[VAR_MOMENTUM+1] = ff_variable[VAR_DENSITY] * ff_velocity.y; - ff_variable[VAR_MOMENTUM+2] = ff_variable[VAR_DENSITY] * ff_velocity.z; - - ff_variable[VAR_DENSITY_ENERGY] = ff_variable[VAR_DENSITY]*(float(0.5f)*(ff_speed*ff_speed)) + (ff_pressure / float(GAMMA-1.0f)); - - float3 ff_momentum; - ff_momentum.x = *(ff_variable+VAR_MOMENTUM+0); - ff_momentum.y = *(ff_variable+VAR_MOMENTUM+1); - ff_momentum.z = *(ff_variable+VAR_MOMENTUM+2); - compute_flux_contribution(ff_variable[VAR_DENSITY], ff_momentum, ff_variable[VAR_DENSITY_ENERGY], ff_pressure, ff_velocity, ff_fc_momentum_x, ff_fc_momentum_y, ff_fc_momentum_z, ff_fc_density_energy); - } - int nel; - int nelr; - - - // read in domain geometry - float* areas; - int* elements_surrounding_elements; - float* normals; - { - std::ifstream file(data_file_name); - - file >> nel; - nelr = block_length*((nel / block_length )+ std::min(1, nel % block_length)); - - areas = new float[nelr]; - elements_surrounding_elements = new int[nelr*NNB]; - normals = new float[NDIM*NNB*nelr]; - - // read in data - for(int i = 0; i < nel; i++) - { - file >> areas[i]; - for(int j = 0; j < NNB; j++) - { - file >> elements_surrounding_elements[i*NNB + j]; - if(elements_surrounding_elements[i*NNB+j] < 0) elements_surrounding_elements[i*NNB+j] = -1; - elements_surrounding_elements[i*NNB + j]--; //it's coming in with Fortran numbering - - for(int k = 0; k < NDIM; k++) - { - file >> normals[(i*NNB + j)*NDIM + k]; - normals[(i*NNB + j)*NDIM + k] = -normals[(i*NNB + j)*NDIM + k]; - } - } - } - - // fill in remaining data - int last = nel-1; - for(int i = nel; i < nelr; i++) - { - areas[i] = areas[last]; - for(int j = 0; j < NNB; j++) - { - // duplicate the last element - elements_surrounding_elements[i*NNB + j] = elements_surrounding_elements[last*NNB + j]; - for(int k = 0; k < NDIM; k++) normals[(i*NNB + j)*NDIM + k] = normals[(last*NNB + j)*NDIM + k]; - } - } - } - - // Create arrays and set initial conditions - float* variables = alloc<float>(nelr*NVAR); - initialize_variables(nelr, variables); - - float* old_variables = alloc<float>(nelr*NVAR); - float* fluxes = alloc<float>(nelr*NVAR); - float* step_factors = alloc<float>(nelr); - float* fc_momentum_x = alloc<float>(nelr*NDIM); - float* fc_momentum_y = alloc<float>(nelr*NDIM); - float* fc_momentum_z = alloc<float>(nelr*NDIM); - float* fc_density_energy = alloc<float>(nelr*NDIM); - - // these need to be computed the first time in order to compute time step - std::cout << "Starting..." << std::endl; - double start = omp_get_wtime(); - - // Begin iterations - for(int i = 0; i < iterations; i++) - { - copy<float>(old_variables, variables, nelr*NVAR); - - // for the first iteration we compute the time step - compute_step_factor(nelr, variables, areas, step_factors); - - for(int j = 0; j < RK; j++) - { - compute_flux_contributions(nelr, variables, fc_momentum_x, fc_momentum_y, fc_momentum_z, fc_density_energy); - compute_flux(nelr, elements_surrounding_elements, normals, variables, fc_momentum_x, fc_momentum_y, fc_momentum_z, fc_density_energy, fluxes); - time_step(j, nelr, old_variables, variables, step_factors, fluxes); - } - } - - double end = omp_get_wtime(); - std::cout << (end-start) / iterations << " seconds per iteration" << std::endl; - - - - std::cout << "Saving solution..." << std::endl; - dump(variables, nel, nelr); - std::cout << "Saved solution..." << std::endl; - - - std::cout << "Cleaning up..." << std::endl; - dealloc<float>(areas); - dealloc<int>(elements_surrounding_elements); - dealloc<float>(normals); - - dealloc<float>(variables); - dealloc<float>(old_variables); - dealloc<float>(fluxes); - dealloc<float>(step_factors); - dealloc<float>(fc_momentum_x); - dealloc<float>(fc_momentum_y); - dealloc<float>(fc_momentum_z); - dealloc<float>(fc_density_energy); - std::cout << "Done..." << std::endl; - - return 0; -} diff --git a/openmp/euler3d-cpu-double/pre_euler3d_cpu_double.cpp b/openmp/euler3d-cpu-double/pre_euler3d_cpu_double.cpp deleted file mode 100755 index f07ae7ea8bb4298c64d8bd27b8dc3d729782b772..0000000000000000000000000000000000000000 --- a/openmp/euler3d-cpu-double/pre_euler3d_cpu_double.cpp +++ /dev/null @@ -1,547 +0,0 @@ -// Copyright 2009, Andrew Corrigan, acorriga@gmu.edu -// This code is from the AIAA-2009-4001 paper - - -#include <iostream> -#include <fstream> -#include <cmath> -#include <omp.h> - -struct double3 { double x, y, z; }; - -#ifndef block_length -#error "you need to define block_length" -#endif - -/* - * Options - * - */ -#define GAMMA 1.4 -#define iterations 2000 - -#define NDIM 3 -#define NNB 4 - -#define RK 3 // 3rd order RK -#define ff_mach 1.2 -#define deg_angle_of_attack 0.0 - -/* - * not options - */ -#define VAR_DENSITY 0 -#define VAR_MOMENTUM 1 -#define VAR_DENSITY_ENERGY (VAR_MOMENTUM+NDIM) -#define NVAR (VAR_DENSITY_ENERGY+1) - - -/* - * Generic functions - */ -template <typename T> -T* alloc(int N) -{ - return new T[N]; -} - -template <typename T> -void dealloc(T* array) -{ - delete[] array; -} - -template <typename T> -void copy(T* dst, T* src, int N) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < N; i++) - { - dst[i] = src[i]; - } -} - - -void dump(double* variables, int nel, int nelr) -{ - - - { - std::ofstream file("density"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i*NVAR + VAR_DENSITY] << std::endl; - } - - - { - std::ofstream file("momentum"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) - { - for(int j = 0; j != NDIM; j++) file << variables[i*NVAR + (VAR_MOMENTUM+j)] << " "; - file << std::endl; - } - } - - { - std::ofstream file("density_energy"); - file << nel << " " << nelr << std::endl; - for(int i = 0; i < nel; i++) file << variables[i*NVAR + VAR_DENSITY_ENERGY] << std::endl; - } - -} - -/* - * Element-based Cell-centered FVM solver functions - */ -double ff_variable[NVAR]; -double3 ff_fc_momentum_x; -double3 ff_fc_momentum_y; -double3 ff_fc_momentum_z; -double3 ff_fc_density_energy; - - -void initialize_variables(int nelr, double* variables) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - for(int j = 0; j < NVAR; j++) variables[i*NVAR + j] = ff_variable[j]; - } -} - -inline void compute_flux_contribution(double& density, double3& momentum, double& density_energy, double& pressure, double3& velocity, double3& fc_momentum_x, double3& fc_momentum_y, double3& fc_momentum_z, double3& fc_density_energy) -{ - fc_momentum_x.x = velocity.x*momentum.x + pressure; - fc_momentum_x.y = velocity.x*momentum.y; - fc_momentum_x.z = velocity.x*momentum.z; - - fc_momentum_y.x = fc_momentum_x.y; - fc_momentum_y.y = velocity.y*momentum.y + pressure; - fc_momentum_y.z = velocity.y*momentum.z; - - fc_momentum_z.x = fc_momentum_x.z; - fc_momentum_z.y = fc_momentum_y.z; - fc_momentum_z.z = velocity.z*momentum.z + pressure; - - double de_p = density_energy+pressure; - fc_density_energy.x = velocity.x*de_p; - fc_density_energy.y = velocity.y*de_p; - fc_density_energy.z = velocity.z*de_p; -} - -inline void compute_velocity(double& density, double3& momentum, double3& velocity) -{ - velocity.x = momentum.x / density; - velocity.y = momentum.y / density; - velocity.z = momentum.z / density; -} - -inline double compute_speed_sqd(double3& velocity) -{ - return velocity.x*velocity.x + velocity.y*velocity.y + velocity.z*velocity.z; -} - -inline double compute_pressure(double& density, double& density_energy, double& speed_sqd) -{ - return (double(GAMMA)-double(1.0))*(density_energy - double(0.5)*density*speed_sqd); -} - -inline double compute_speed_of_sound(double& density, double& pressure) -{ - return std::sqrt(double(GAMMA)*pressure/density); -} - - - -void compute_step_factor(int nelr, double* variables, double* areas, double* step_factors) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - double density = variables[NVAR*i + VAR_DENSITY]; - - double3 momentum; - momentum.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - - double density_energy = variables[NVAR*i + VAR_DENSITY_ENERGY]; - double3 velocity; compute_velocity(density, momentum, velocity); - double speed_sqd = compute_speed_sqd(velocity); - double pressure = compute_pressure(density, density_energy, speed_sqd); - double speed_of_sound = compute_speed_of_sound(density, pressure); - - // dt = double(0.5) * std::sqrt(areas[i]) / (||v|| + c).... but when we do time stepping, this later would need to be divided by the area, so we just do it all at once - step_factors[i] = double(0.5) / (std::sqrt(areas[i]) * (std::sqrt(speed_sqd) + speed_of_sound)); - } -} - - -void compute_flux_contributions(int nelr, double* variables, double* fc_momentum_x, double* fc_momentum_y, double* fc_momentum_z, double* fc_density_energy) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - double density_i = variables[NVAR*i + VAR_DENSITY]; - double3 momentum_i; - momentum_i.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum_i.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum_i.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - double density_energy_i = variables[NVAR*i + VAR_DENSITY_ENERGY]; - - double3 velocity_i; compute_velocity(density_i, momentum_i, velocity_i); - double speed_sqd_i = compute_speed_sqd(velocity_i); - double speed_i = sqrtf(speed_sqd_i); - double pressure_i = compute_pressure(density_i, density_energy_i, speed_sqd_i); - double speed_of_sound_i = compute_speed_of_sound(density_i, pressure_i); - double3 fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z; - double3 fc_i_density_energy; - compute_flux_contribution(density_i, momentum_i, density_energy_i, pressure_i, velocity_i, fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z, fc_i_density_energy); - - fc_momentum_x[i*NDIM + 0] = fc_i_momentum_x.x; - fc_momentum_x[i*NDIM + 1] = fc_i_momentum_x.y; - fc_momentum_x[i*NDIM+ 2] = fc_i_momentum_x.z; - - fc_momentum_y[i*NDIM+ 0] = fc_i_momentum_y.x; - fc_momentum_y[i*NDIM+ 1] = fc_i_momentum_y.y; - fc_momentum_y[i*NDIM+ 2] = fc_i_momentum_y.z; - - - fc_momentum_z[i*NDIM+ 0] = fc_i_momentum_z.x; - fc_momentum_z[i*NDIM+ 1] = fc_i_momentum_z.y; - fc_momentum_z[i*NDIM+ 2] = fc_i_momentum_z.z; - - fc_density_energy[i*NDIM+ 0] = fc_i_density_energy.x; - fc_density_energy[i*NDIM+ 1] = fc_i_density_energy.y; - fc_density_energy[i*NDIM+ 2] = fc_i_density_energy.z; - } - -} - -/* - * - * -*/ - -void compute_flux(int nelr, int* elements_surrounding_elements, double* normals, double* variables, double* fc_momentum_x, double* fc_momentum_y, double* fc_momentum_z, double* fc_density_energy, double* fluxes) -{ - const double smoothing_coefficient = double(0.2); - - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - int j, nb; - double3 normal; double normal_len; - double factor; - - double density_i = variables[NVAR*i + VAR_DENSITY]; - double3 momentum_i; - momentum_i.x = variables[NVAR*i + (VAR_MOMENTUM+0)]; - momentum_i.y = variables[NVAR*i + (VAR_MOMENTUM+1)]; - momentum_i.z = variables[NVAR*i + (VAR_MOMENTUM+2)]; - - double density_energy_i = variables[NVAR*i + VAR_DENSITY_ENERGY]; - - double3 velocity_i; compute_velocity(density_i, momentum_i, velocity_i); - double speed_sqd_i = compute_speed_sqd(velocity_i); - double speed_i = std::sqrt(speed_sqd_i); - double pressure_i = compute_pressure(density_i, density_energy_i, speed_sqd_i); - double speed_of_sound_i = compute_speed_of_sound(density_i, pressure_i); - double3 fc_i_momentum_x, fc_i_momentum_y, fc_i_momentum_z; - double3 fc_i_density_energy; - - fc_i_momentum_x.x = fc_momentum_x[i*NDIM + 0]; - fc_i_momentum_x.y = fc_momentum_x[i*NDIM + 1]; - fc_i_momentum_x.z = fc_momentum_x[i*NDIM + 2]; - - fc_i_momentum_y.x = fc_momentum_y[i*NDIM + 0]; - fc_i_momentum_y.y = fc_momentum_y[i*NDIM + 1]; - fc_i_momentum_y.z = fc_momentum_y[i*NDIM + 2]; - - fc_i_momentum_z.x = fc_momentum_z[i*NDIM + 0]; - fc_i_momentum_z.y = fc_momentum_z[i*NDIM + 1]; - fc_i_momentum_z.z = fc_momentum_z[i*NDIM + 2]; - - fc_i_density_energy.x = fc_density_energy[i*NDIM + 0]; - fc_i_density_energy.y = fc_density_energy[i*NDIM + 1]; - fc_i_density_energy.z = fc_density_energy[i*NDIM + 2]; - - double flux_i_density = double(0.0); - double3 flux_i_momentum; - flux_i_momentum.x = double(0.0); - flux_i_momentum.y = double(0.0); - flux_i_momentum.z = double(0.0); - double flux_i_density_energy = double(0.0); - - double3 velocity_nb; - double density_nb, density_energy_nb; - double3 momentum_nb; - double3 fc_nb_momentum_x, fc_nb_momentum_y, fc_nb_momentum_z; - double3 fc_nb_density_energy; - double speed_sqd_nb, speed_of_sound_nb, pressure_nb; - - for(j = 0; j < NNB; j++) - { - nb = elements_surrounding_elements[i*NNB + j]; - normal.x = normals[(i*NNB + j)*NDIM + 0]; - normal.y = normals[(i*NNB + j)*NDIM + 1]; - normal.z = normals[(i*NNB + j)*NDIM + 2]; - normal_len = std::sqrt(normal.x*normal.x + normal.y*normal.y + normal.z*normal.z); - - if(nb >= 0) // a legitimate neighbor - { - density_nb = variables[nb*NVAR + VAR_DENSITY]; - momentum_nb.x = variables[nb*NVAR + (VAR_MOMENTUM+0)]; - momentum_nb.y = variables[nb*NVAR + (VAR_MOMENTUM+1)]; - momentum_nb.z = variables[nb*NVAR + (VAR_MOMENTUM+2)]; - density_energy_nb = variables[nb*NVAR + VAR_DENSITY_ENERGY]; - compute_velocity(density_nb, momentum_nb, velocity_nb); - speed_sqd_nb = compute_speed_sqd(velocity_nb); - pressure_nb = compute_pressure(density_nb, density_energy_nb, speed_sqd_nb); - speed_of_sound_nb = compute_speed_of_sound(density_nb, pressure_nb); - - fc_nb_momentum_x.x = fc_momentum_x[nb*NDIM + 0]; - fc_nb_momentum_x.y = fc_momentum_x[nb*NDIM + 1]; - fc_nb_momentum_x.z = fc_momentum_x[nb*NDIM + 2]; - - fc_nb_momentum_y.x = fc_momentum_y[nb*NDIM + 0]; - fc_nb_momentum_y.y = fc_momentum_y[nb*NDIM + 1]; - fc_nb_momentum_y.z = fc_momentum_y[nb*NDIM + 2]; - - fc_nb_momentum_z.x = fc_momentum_z[nb*NDIM + 0]; - fc_nb_momentum_z.y = fc_momentum_z[nb*NDIM + 1]; - fc_nb_momentum_z.z = fc_momentum_z[nb*NDIM + 2]; - - fc_nb_density_energy.x = fc_density_energy[nb*NDIM + 0]; - fc_nb_density_energy.y = fc_density_energy[nb*NDIM + 1]; - - // artificial viscosity - factor = -normal_len*smoothing_coefficient*double(0.5)*(speed_i + std::sqrt(speed_sqd_nb) + speed_of_sound_i + speed_of_sound_nb); - flux_i_density += factor*(density_i-density_nb); - flux_i_density_energy += factor*(density_energy_i-density_energy_nb); - flux_i_momentum.x += factor*(momentum_i.x-momentum_nb.x); - flux_i_momentum.y += factor*(momentum_i.y-momentum_nb.y); - flux_i_momentum.z += factor*(momentum_i.z-momentum_nb.z); - - // accumulate cell-centered fluxes - factor = double(0.5)*normal.x; - flux_i_density += factor*(momentum_nb.x+momentum_i.x); - flux_i_density_energy += factor*(fc_nb_density_energy.x+fc_i_density_energy.x); - flux_i_momentum.x += factor*(fc_nb_momentum_x.x+fc_i_momentum_x.x); - flux_i_momentum.y += factor*(fc_nb_momentum_y.x+fc_i_momentum_y.x); - flux_i_momentum.z += factor*(fc_nb_momentum_z.x+fc_i_momentum_z.x); - - factor = double(0.5)*normal.y; - flux_i_density += factor*(momentum_nb.y+momentum_i.y); - flux_i_density_energy += factor*(fc_nb_density_energy.y+fc_i_density_energy.y); - flux_i_momentum.x += factor*(fc_nb_momentum_x.y+fc_i_momentum_x.y); - flux_i_momentum.y += factor*(fc_nb_momentum_y.y+fc_i_momentum_y.y); - flux_i_momentum.z += factor*(fc_nb_momentum_z.y+fc_i_momentum_z.y); - - factor = double(0.5)*normal.z; - flux_i_density += factor*(momentum_nb.z+momentum_i.z); - flux_i_density_energy += factor*(fc_nb_density_energy.z+fc_i_density_energy.z); - flux_i_momentum.x += factor*(fc_nb_momentum_x.z+fc_i_momentum_x.z); - flux_i_momentum.y += factor*(fc_nb_momentum_y.z+fc_i_momentum_y.z); - flux_i_momentum.z += factor*(fc_nb_momentum_z.z+fc_i_momentum_z.z); - } - else if(nb == -1) // a wing boundary - { - flux_i_momentum.x += normal.x*pressure_i; - flux_i_momentum.y += normal.y*pressure_i; - flux_i_momentum.z += normal.z*pressure_i; - } - else if(nb == -2) // a far field boundary - { - factor = double(0.5)*normal.x; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+0]+momentum_i.x); - flux_i_density_energy += factor*(ff_fc_density_energy.x+fc_i_density_energy.x); - flux_i_momentum.x += factor*(ff_fc_momentum_x.x + fc_i_momentum_x.x); - flux_i_momentum.y += factor*(ff_fc_momentum_y.x + fc_i_momentum_y.x); - flux_i_momentum.z += factor*(ff_fc_momentum_z.x + fc_i_momentum_z.x); - - factor = double(0.5)*normal.y; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+1]+momentum_i.y); - flux_i_density_energy += factor*(ff_fc_density_energy.y+fc_i_density_energy.y); - flux_i_momentum.x += factor*(ff_fc_momentum_x.y + fc_i_momentum_x.y); - flux_i_momentum.y += factor*(ff_fc_momentum_y.y + fc_i_momentum_y.y); - flux_i_momentum.z += factor*(ff_fc_momentum_z.y + fc_i_momentum_z.y); - - factor = double(0.5)*normal.z; - flux_i_density += factor*(ff_variable[VAR_MOMENTUM+2]+momentum_i.z); - flux_i_density_energy += factor*(ff_fc_density_energy.z+fc_i_density_energy.z); - flux_i_momentum.x += factor*(ff_fc_momentum_x.z + fc_i_momentum_x.z); - flux_i_momentum.y += factor*(ff_fc_momentum_y.z + fc_i_momentum_y.z); - flux_i_momentum.z += factor*(ff_fc_momentum_z.z + fc_i_momentum_z.z); - - } - } - - fluxes[i*NVAR + VAR_DENSITY] = flux_i_density; - fluxes[i*NVAR + (VAR_MOMENTUM+0)] = flux_i_momentum.x; - fluxes[i*NVAR + (VAR_MOMENTUM+1)] = flux_i_momentum.y; - fluxes[i*NVAR + (VAR_MOMENTUM+2)] = flux_i_momentum.z; - fluxes[i*NVAR + VAR_DENSITY_ENERGY] = flux_i_density_energy; - } -} - -void time_step(int j, int nelr, double* old_variables, double* variables, double* step_factors, double* fluxes) -{ - #pragma omp parallel for default(shared) schedule(static) - for(int i = 0; i < nelr; i++) - { - double factor = step_factors[i]/double(RK+1-j); - - variables[NVAR*i + VAR_DENSITY] = old_variables[NVAR*i + VAR_DENSITY] + factor*fluxes[NVAR*i + VAR_DENSITY]; - variables[NVAR*i + VAR_DENSITY_ENERGY] = old_variables[NVAR*i + VAR_DENSITY_ENERGY] + factor*fluxes[NVAR*i + VAR_DENSITY_ENERGY]; - variables[NVAR*i + (VAR_MOMENTUM+0)] = old_variables[NVAR*i + (VAR_MOMENTUM+0)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+0)]; - variables[NVAR*i + (VAR_MOMENTUM+1)] = old_variables[NVAR*i + (VAR_MOMENTUM+1)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+1)]; - variables[NVAR*i + (VAR_MOMENTUM+2)] = old_variables[NVAR*i + (VAR_MOMENTUM+2)] + factor*fluxes[NVAR*i + (VAR_MOMENTUM+2)]; - } -} -/* - * Main function - */ -int main(int argc, char** argv) -{ - if (argc < 2) - { - std::cout << "specify data file name" << std::endl; - return 0; - } - const char* data_file_name = argv[1]; - - // set far field conditions - { - const double angle_of_attack = double(3.1415926535897931 / 180.0) * double(deg_angle_of_attack); - - ff_variable[VAR_DENSITY] = double(1.4); - - double ff_pressure = double(1.0); - double ff_speed_of_sound = sqrt(GAMMA*ff_pressure / ff_variable[VAR_DENSITY]); - double ff_speed = double(ff_mach)*ff_speed_of_sound; - - double3 ff_velocity; - ff_velocity.x = ff_speed*double(cos((double)angle_of_attack)); - ff_velocity.y = ff_speed*double(sin((double)angle_of_attack)); - ff_velocity.z = 0.0; - - ff_variable[VAR_MOMENTUM+0] = ff_variable[VAR_DENSITY] * ff_velocity.x; - ff_variable[VAR_MOMENTUM+1] = ff_variable[VAR_DENSITY] * ff_velocity.y; - ff_variable[VAR_MOMENTUM+2] = ff_variable[VAR_DENSITY] * ff_velocity.z; - - ff_variable[VAR_DENSITY_ENERGY] = ff_variable[VAR_DENSITY]*(double(0.5)*(ff_speed*ff_speed)) + (ff_pressure / double(GAMMA-1.0)); - - double3 ff_momentum; - ff_momentum.x = *(ff_variable+VAR_MOMENTUM+0); - ff_momentum.y = *(ff_variable+VAR_MOMENTUM+1); - ff_momentum.z = *(ff_variable+VAR_MOMENTUM+2); - compute_flux_contribution(ff_variable[VAR_DENSITY], ff_momentum, ff_variable[VAR_DENSITY_ENERGY], ff_pressure, ff_velocity, ff_fc_momentum_x, ff_fc_momentum_y, ff_fc_momentum_z, ff_fc_density_energy); - } - int nel; - int nelr; - - // read in domain geometry - double* areas; - int* elements_surrounding_elements; - double* normals; - { - std::ifstream file(data_file_name); - - file >> nel; - nelr = block_length*((nel / block_length )+ std::min(1, nel % block_length)); - - areas = new double[nelr]; - elements_surrounding_elements = new int[nelr*NNB]; - normals = new double[NDIM*NNB*nelr]; - - // read in data - for(int i = 0; i < nel; i++) - { - file >> areas[i]; - for(int j = 0; j < NNB; j++) - { - file >> elements_surrounding_elements[i*NNB + j]; - if(elements_surrounding_elements[i*NNB+j] < 0) elements_surrounding_elements[i*NNB+j] = -1; - elements_surrounding_elements[i*NNB + j]--; //it's coming in with Fortran numbering - - for(int k = 0; k < NDIM; k++) - { - file >> normals[(i*NNB + j)*NDIM + k]; - normals[(i*NNB + j)*NDIM + k] = -normals[(i*NNB + j)*NDIM + k]; - } - } - } - - // fill in remaining data - int last = nel-1; - for(int i = nel; i < nelr; i++) - { - areas[i] = areas[last]; - for(int j = 0; j < NNB; j++) - { - // duplicate the last element - elements_surrounding_elements[i*NNB + j] = elements_surrounding_elements[last*NNB + j]; - for(int k = 0; k < NDIM; k++) normals[(i*NNB + j)*NDIM + k] = normals[(last*NNB + j)*NDIM + k]; - } - } - } - - // Create arrays and set initial conditions - double* variables = alloc<double>(nelr*NVAR); - initialize_variables(nelr, variables); - - double* old_variables = alloc<double>(nelr*NVAR); - double* fluxes = alloc<double>(nelr*NVAR); - double* step_factors = alloc<double>(nelr); - double* fc_momentum_x = alloc<double>(nelr*NDIM); - double* fc_momentum_y = alloc<double>(nelr*NDIM); - double* fc_momentum_z = alloc<double>(nelr*NDIM); - double* fc_density_energy = alloc<double>(nelr*NDIM); - - // these need to be computed the first time in order to compute time step - std::cout << "Starting..." << std::endl; - double start = omp_get_wtime(); - - // Begin iterations - for(int i = 0; i < iterations; i++) - { - copy<double>(old_variables, variables, nelr*NVAR); - - // for the first iteration we compute the time step - compute_step_factor(nelr, variables, areas, step_factors); - - for(int j = 0; j < RK; j++) - { - compute_flux_contributions(nelr, variables, fc_momentum_x, fc_momentum_y, fc_momentum_z, fc_density_energy); - compute_flux(nelr, elements_surrounding_elements, normals, variables, fc_momentum_x, fc_momentum_y, fc_momentum_z, fc_density_energy, fluxes); - time_step(j, nelr, old_variables, variables, step_factors, fluxes); - } - } - - double end = omp_get_wtime(); - std::cout << (end-start) / iterations << " seconds per iteration" << std::endl; - - std::cout << "Saving solution..." << std::endl; - dump(variables, nel, nelr); - std::cout << "Saved solution..." << std::endl; - - - std::cout << "Cleaning up..." << std::endl; - dealloc<double>(areas); - dealloc<int>(elements_surrounding_elements); - dealloc<double>(normals); - - dealloc<double>(variables); - dealloc<double>(old_variables); - dealloc<double>(fluxes); - dealloc<double>(step_factors); - dealloc<double>(fc_momentum_x); - dealloc<double>(fc_momentum_y); - dealloc<double>(fc_momentum_z); - dealloc<double>(fc_density_energy); - std::cout << "Done..." << std::endl; - - return 0; -} diff --git a/openmp/euler3d-cpu-double/run b/openmp/euler3d-cpu-double/run index 2eed907db658bc462d1ddf9a5c4a5a88c9c2d643..4e55736dd0d1307ca96df4266a330f9aaba68ab3 100755 --- a/openmp/euler3d-cpu-double/run +++ b/openmp/euler3d-cpu-double/run @@ -1 +1 @@ -./euler3d_cpu_double ../../data/cfd/missile.domn.0.2M +./euler3d-cpu-double ../../data/cfd/missile.domn.0.2M diff --git a/openmp/particle-filter/Makefile b/openmp/particle-filter/Makefile index 63e313910c0538a9b7200bcb52dfbcc1e53f3cdd..809fc17f560265191039b1a619383d057a1c78e6 100755 --- a/openmp/particle-filter/Makefile +++ b/openmp/particle-filter/Makefile @@ -5,13 +5,8 @@ OMP_FLAG = -fopenmp STD = -std=gnu89 OFFLOAD_CC_FLAGS = -offload-option,mic,compiler,"-no-opt-prefetch" -openmp: ex_particle_OPENMP_seq.c - $(CC) $(STD) $(CFLAGS) $(OMP_FLAG) ex_particle_OPENMP_seq.c -o particle_filter -lm - - -icc_openmp: ex_particle_OPENMP_seq.c - icc -O3 -fast -openmp ex_particle_OPENMP_seq.c -o particle_filter - +openmp: ex-particle-OPENMP-seq.c + $(CC) $(STD) $(CFLAGS) $(OMP_FLAG) ex-particle-OPENMP-seq.c -o particle-filter -lm clean: - rm particle_filter + rm particle-filter diff --git a/openmp/particle-filter/ex_particle_OPENMP_seq.c b/openmp/particle-filter/ex-particle-OPENMP-seq.c similarity index 100% rename from openmp/particle-filter/ex_particle_OPENMP_seq.c rename to openmp/particle-filter/ex-particle-OPENMP-seq.c diff --git a/openmp/particle-filter/run b/openmp/particle-filter/run index d752564397380e8c8a8b7ba4fdae89e6faa4d472..5e3ee0254cb2389b828ab20f3f352a2011c6d0bf 100755 --- a/openmp/particle-filter/run +++ b/openmp/particle-filter/run @@ -1 +1 @@ -./particle_filter -x 10000 -y 10000 -z 10 -np 250000 +./particle-filter -x 10000 -y 10000 -z 10 -np 250000