Commit c90f6426 authored by COULAUD Olivier's avatar COULAUD Olivier

Output improvements + new data distributions

parent 9c6b97c4
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -197,19 +197,19 @@ inline void PrintUsedOptions(const std::vector<FParameterNames>& options){ ...@@ -197,19 +197,19 @@ inline void PrintUsedOptions(const std::vector<FParameterNames>& options){
inline void PrintFlags(){ inline void PrintFlags(){
std::cout << "[ScalFMM] This executable has been compiled with:\n"; std::cout << "[ScalFMM] This executable has been compiled with:\n";
std::cout << "× Flags = " << SCALFMMCompileFlags << "\n"; std::cout << " Flags: " << SCALFMMCompileFlags << "\n";
std::cout << "× Libs = " << SCALFMMCompileLibs << "\n"; std::cout << " Libs; " << SCALFMMCompileLibs << "\n";
std::cout.flush(); std::cout << std::endl; std::cout.flush();
} }
inline void PrintDateHost(){ inline void PrintDateHost(){
std::cout << "[ScalFMM] This execution is on:\n"; std::cout << "[ScalFMM] This execution is on:\n";
std::time_t now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); std::time_t now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
std::cout << "× Date = " << std::ctime(&now) << "\n"; std::cout << " Date: " << std::ctime(&now) ;
char hostname[1024]; char hostname[1024];
gethostname(hostname, 1024); gethostname(hostname, 1024);
std::cout << "× Host = " << hostname << "\n"; std::cout << " Host: " << hostname << "\n";
std::cout.flush(); std::cout << std::endl; std::cout.flush();
} }
inline void PrintGivenParams(int argc, const char* const * const argv){ inline void PrintGivenParams(int argc, const char* const * const argv){
...@@ -217,7 +217,7 @@ inline void PrintGivenParams(int argc, const char* const * const argv){ ...@@ -217,7 +217,7 @@ inline void PrintGivenParams(int argc, const char* const * const argv){
for(int idx = 0 ; idx < argc ; ++idx){ for(int idx = 0 ; idx < argc ; ++idx){
std::cout << " | " << argv[idx]; std::cout << " | " << argv[idx];
} }
std::cout << "\n"; std::cout << " | \n\n";
std::cout.flush(); std::cout.flush();
} }
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
// ==== CMAKE ===== // ==== CMAKE =====
// @FUSE_BLAS // @FUSE_BLAS
// ==== Git =====
// @SCALFMM_PRIVATE
// ================ // ================
#include <iostream> #include <iostream>
...@@ -46,6 +48,8 @@ ...@@ -46,6 +48,8 @@
#endif #endif
#include "Utils/FTemplate.hpp" #include "Utils/FTemplate.hpp"
#include "Utils/FParameterNames.hpp"
/** /**
* This program runs the FMM Algorithm with the Chebyshev kernel and compares the results with a direct computation. * This program runs the FMM Algorithm with the Chebyshev kernel and compares the results with a direct computation.
...@@ -83,15 +87,13 @@ struct TempMainStruct{ ...@@ -83,15 +87,13 @@ struct TempMainStruct{
template <const unsigned int ORDER> template <const unsigned int ORDER>
static void Run(int argc, char* argv[]) static void Run(int argc, char* argv[])
{ {
const std::string defaultFile(/*SCALFMMDataPath+*/"../Data/test20k.fma" ); //
const std::string defaultFile(/*SCALFMMDataPath+*/"../Data/UTest/unitCubeRef20kDouble.bfma" );
const std::string filename = FParameters::getStr(argc,argv,"-f", defaultFile.c_str()); const std::string filename = FParameters::getStr(argc,argv,"-f", defaultFile.c_str());
const unsigned int TreeHeight = FParameters::getValue(argc, argv, "-depth", 5); const unsigned int TreeHeight = FParameters::getValue(argc, argv, "-depth", 5);
const unsigned int SubTreeHeight = FParameters::getValue(argc, argv, "-subdepth", 2); const unsigned int SubTreeHeight = FParameters::getValue(argc, argv, "-subdepth", 2);
const unsigned int NbThreads = FParameters::getValue(argc, argv, "-t", 1); const unsigned int NbThreads = FParameters::getValue(argc, argv, "-t", 1);
if(FParameters::existParameter(argc, argv, "-h")||FParameters::existParameter(argc, argv, "-help")){
usage() ;
exit(EXIT_SUCCESS);
}
#ifdef _OPENMP #ifdef _OPENMP
omp_set_num_threads(NbThreads); omp_set_num_threads(NbThreads);
std::cout << "\n>> Using " << omp_get_max_threads() << " threads.\n" << std::endl; std::cout << "\n>> Using " << omp_get_max_threads() << " threads.\n" << std::endl;
...@@ -260,7 +262,12 @@ static void Run(int argc, char* argv[]) ...@@ -260,7 +262,12 @@ static void Run(int argc, char* argv[])
int main(int argc, char** argv){ int main(int argc, char** argv){
// const std::string outputFile("accuracyChebyschev.txt") ; // const std::string outputFile("accuracyChebyschev.txt") ;
// std::ofstream output(outputFile,std::fstream::out | std::fstream::app); // std::ofstream output(outputFile,std::fstream::out | std::fstream::app);
FHelpDescribeAndExit(argc, argv,
"Driver for Chebyshev interpolation kernel (1/r kernel).",
FParameterDefinitions::InputFile, FParameterDefinitions::OctreeHeight,
FParameterDefinitions::OctreeSubHeight, FParameterDefinitions::InputFile,
FParameterDefinitions::NbThreads);
//
const unsigned int order = FParameters::getValue(argc, argv, "-order", 5); const unsigned int order = FParameters::getValue(argc, argv, "-order", 5);
std::cout << "Order given by user is : " << order << "\n"; std::cout << "Order given by user is : " << order << "\n";
......
...@@ -44,7 +44,7 @@ for l in `seq 1 $MaxCore `; ...@@ -44,7 +44,7 @@ for l in `seq 1 $MaxCore `;
do do
OUTPUT=${FILEPERF}-${HOST}-${l}.out OUTPUT=${FILEPERF}-${HOST}-${l}.out
echo "Running per = " ${l} echo "Running per = " ${l}
$EXEC -f $FILE -depth 7 -subdepth 4 -t $l > $OUTPUT $EXEC --datehost --flags -show-params -f $FILE -depth 7 -subdepth 4 -t $l > $OUTPUT
# #
TIME=`grep "@Algorithm" $OUTPUT | awk '{print $4}'` TIME=`grep "@Algorithm" $OUTPUT | awk '{print $4}'`
Energy=`grep "Energy" $OUTPUT | awk '{print $2}'` Energy=`grep "Energy" $OUTPUT | awk '{print $2}'`
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment