Commit 42c991d5 authored by PIACIBELLO Cyrille's avatar PIACIBELLO Cyrille
parents 8dad7822 e394a7e6
...@@ -57,6 +57,7 @@ OPTION( ScalFMM_USE_SSE "Set to ON to compile with SSE support" ...@@ -57,6 +57,7 @@ OPTION( ScalFMM_USE_SSE "Set to ON to compile with SSE support"
OPTION( ScalFMM_USE_AVX "Set to ON to compile with AVX support" OFF ) OPTION( ScalFMM_USE_AVX "Set to ON to compile with AVX support" OFF )
OPTION( ScalFMM_USE_ASSERT "Set to ON to enable safe tests during execution" ON ) OPTION( ScalFMM_USE_ASSERT "Set to ON to enable safe tests during execution" ON )
OPTION( ScalFMM_USE_MIC_NATIVE "Set to ON to compile in native mode for MIC" OFF ) OPTION( ScalFMM_USE_MIC_NATIVE "Set to ON to compile in native mode for MIC" OFF )
OPTION( ScalFMM_BUILD_ONLY_LIB "Set to ON to compile ionly the lib (examples are not compiled) " OFF )
# Set scalfmm to default libraries # Set scalfmm to default libraries
SET(SCALFMM_LIBRARIES "") SET(SCALFMM_LIBRARIES "")
SET(ScaLFMM_CXX_FLAGS "") SET(ScaLFMM_CXX_FLAGS "")
...@@ -116,11 +117,11 @@ else() ...@@ -116,11 +117,11 @@ else()
IF( APPLE ) IF( APPLE )
SET(SCALFMM_FLAGS_OPTI_RELEASE "-m64 -funroll-loops" CACHE STRING "Set your optimization flags for release mode.") SET(SCALFMM_FLAGS_OPTI_RELEASE "-m64 -funroll-loops" CACHE STRING "Set your optimization flags for release mode.")
ELSE(APPLE) ELSE(APPLE)
# Not apple system - Check the compilater flags # Not apple system - Check the compiler flags
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
SET(SCALFMM_FLAGS_OPTI_RELEASE "${FLAGS_64bits} -march=native -fp-model precise -fp-model source -fimf-precision=low -funroll-loops -ftree-vectorize" CACHE STRING "Set your optimization flags for release mode.") SET(SCALFMM_FLAGS_OPTI_RELEASE "${FLAGS_64bits} -march=native -fp-model precise -fp-model source -fimf-precision=low -funroll-loops -ftree-vectorize" CACHE STRING "Set your optimization flags for release mode.")
else() else()
SET(SCALFMM_FLAGS_OPTI_RELEASE "${FLAGS_64bits} -ffast-math -flto -funroll-loops -ftree-vectorize" CACHE STRING "Set your optimization flags for release mode.") SET(SCALFMM_FLAGS_OPTI_RELEASE "${FLAGS_64bits} -ffast-math -funroll-loops -ftree-vectorize" CACHE STRING "Set your optimization flags for release mode.")
endif() endif()
ENDIF(APPLE) ENDIF(APPLE)
# #
...@@ -181,8 +182,7 @@ endif(ScalFMM_USE_FFT) ...@@ -181,8 +182,7 @@ endif(ScalFMM_USE_FFT)
#ADD_DEFINITIONS(-Wall -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -fpic ) #ADD_DEFINITIONS(-Wall -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -fpic )
# #
# C++ 2011 # C++ 2011
#ADD_DEFINITIONS(-std=c++11) MESSAGE( "CMAKE_SYSTEM: ${CMAKE_SYSTEM} CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID} CMAKE_CXX_COMPILER ${NAME}")
MESSAGE( "CMAKE_SYSTEM: ${CMAKE_SYSTEM} CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID} CMAKE_CXX_COMPILER ${NAME}")
IF(CMAKE_CXX_COMPILER_ID STREQUAL "Intel") IF(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE INTEL_VERSION) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE INTEL_VERSION)
MESSAGE( "Intel: ${INTEL_VERSION}") MESSAGE( "Intel: ${INTEL_VERSION}")
...@@ -301,9 +301,10 @@ add_subdirectory(Src) ...@@ -301,9 +301,10 @@ add_subdirectory(Src)
# Link with scalfmm lib # Link with scalfmm lib
set(scalfmm_lib scalfmm) set(scalfmm_lib scalfmm)
if( NOT ScalFMM_BUILD_ONLY_LIB )
# Build - Examples and drivers # Build - Examples and drivers
add_subdirectory(Examples) add_subdirectory(Examples)
endif()
# Build - Tests # Build - Tests
MESSAGE( STATUS "ScalFMM_BUILD_TESTS = ${ScalFMM_BUILD_TESTS}" ) MESSAGE( STATUS "ScalFMM_BUILD_TESTS = ${ScalFMM_BUILD_TESTS}" )
......
Copyright (c) 2011-2014 Inria, All rights reserved.
===========================================================================
This file contains the main features as well as overviews of specific
bug fixes (and other actions) for each version of ScalFMM since
version 1.1
1.2 ()
-----
- New FMA format to read/write particles
- Add examples repository
- Add distributions generator
- Fix bugs in periodic model
- Fix bug and performance improvements in MPI thread algorithms
- Now we use MPI THREAD SERIALIZED rather than MPI_THREAD_MULTIPLE in MPI+OpenMP algorithm.
- Add Uniform interpolation based on Lagrange polynomials
- Improve tests -> now we use CTest and CDash (Thanks F Rue to Inria)
- Add support for Intel icl++ compiler (Intel 2015 compiler) on MacOS X and Clang on linux system
- Add SSE and AVX support
- Add SSE and AVX code for 1/r kernel
- CMake improvements
\ No newline at end of file
// =================================================================================== // ===================================================================================
// Copyright ScalFmm 2011 INRIA, Olivier Coulaud, Bérenger Bramas, Matthias Messner // Copyright ScalFmm 2011 INRIA
// olivier.coulaud@inria.fr, berenger.bramas@inria.fr // olivier.coulaud@inria.fr, berenger.bramas@inria.fr
// This software is a computer program whose purpose is to compute the FMM. // This software is a computer program whose purpose is to compute the FMM.
// //
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
#include "FAbstractSphericalKernel.hpp" #include "FAbstractSphericalKernel.hpp"
#include "../../Utils/FMemUtils.hpp" #include "Utils/FMemUtils.hpp"
#include "../../Utils/FBlas.hpp" #include "Utils/FBlas.hpp"
/** /**
* @author Berenger Bramas (berenger.bramas@inria.fr) * @author Berenger Bramas (berenger.bramas@inria.fr)
...@@ -123,7 +123,7 @@ public: ...@@ -123,7 +123,7 @@ public:
FF_MATRIX_ROW_DIM(Parent::harmonic.getExpSize()), FF_MATRIX_COLUMN_DIM(Parent::harmonic.getNExpSize()), FF_MATRIX_ROW_DIM(Parent::harmonic.getExpSize()), FF_MATRIX_COLUMN_DIM(Parent::harmonic.getNExpSize()),
FF_MATRIX_SIZE(FF_MATRIX_ROW_DIM * FF_MATRIX_COLUMN_DIM), FF_MATRIX_SIZE(FF_MATRIX_ROW_DIM * FF_MATRIX_COLUMN_DIM),
temporaryMultiSource(new FComplexe[FF_MATRIX_COLUMN_DIM]), temporaryMultiSource(new FComplexe[FF_MATRIX_COLUMN_DIM]),
preM2LTransitions(0){ preM2LTransitions(nullptr){
allocAndInit(); allocAndInit();
} }
......
// =================================================================================== // ===================================================================================
// Copyright ScalFmm 2011 INRIA, Olivier Coulaud, Bérenger Bramas, Matthias Messner // Copyright ScalFmm 2011 INRIA,
// olivier.coulaud@inria.fr, berenger.bramas@inria.fr // olivier.coulaud@inria.fr, berenger.bramas@inria.fr
// This software is a computer program whose purpose is to compute the FMM. // This software is a computer program whose purpose is to compute the FMM.
// //
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#define FSPHERICALROTATIONKERNEL_HPP #define FSPHERICALROTATIONKERNEL_HPP
#include "FAbstractSphericalKernel.hpp" #include "FAbstractSphericalKernel.hpp"
#include "../../Utils/FMemUtils.hpp" #include "Utils/FMemUtils.hpp"
/** /**
* @author Berenger Bramas (berenger.bramas@inria.fr) * @author Berenger Bramas (berenger.bramas@inria.fr)
...@@ -393,7 +393,7 @@ public: ...@@ -393,7 +393,7 @@ public:
FSphericalRotationKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const FPoint& inBoxCenter) FSphericalRotationKernel(const int inDevP, const int inTreeHeight, const FReal inBoxWidth, const FPoint& inBoxCenter)
: Parent(inDevP, inTreeHeight, inBoxWidth, inBoxCenter), : Parent(inDevP, inTreeHeight, inBoxWidth, inBoxCenter),
devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)), devM2lP(int(((inDevP*2)+1) * ((inDevP*2)+2) * 0.5)),
preM2LTransitions(0), preM2LTransitions(nullptr),
rotation_Info(inDevP) { rotation_Info(inDevP) {
allocAndInit(); allocAndInit();
} }
......
...@@ -63,7 +63,7 @@ class TestChebyshevDirect : public FUTester<TestChebyshevDirect> { ...@@ -63,7 +63,7 @@ class TestChebyshevDirect : public FUTester<TestChebyshevDirect> {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
const std::string parFile( (sizeof(FReal) == sizeof(float))? const std::string parFile( (sizeof(FReal) == sizeof(float))?
"Test/DirectFloatbfma": "Test/DirectFloat.bfma":
"UTest/DirectDouble.bfma"); "UTest/DirectDouble.bfma");
// //
std::string filename(SCALFMMDataPath+parFile); std::string filename(SCALFMMDataPath+parFile);
...@@ -75,16 +75,16 @@ class TestChebyshevDirect : public FUTester<TestChebyshevDirect> { ...@@ -75,16 +75,16 @@ class TestChebyshevDirect : public FUTester<TestChebyshevDirect> {
const int NbLevels = 4; const int NbLevels = 4;
const int SizeSubLevels = 2; const int SizeSubLevels = 2;
// Create octree
FSize nbParticles = loader.getNumberOfParticles() ; FSize nbParticles = loader.getNumberOfParticles() ;
FmaR8W8Particle* const particles = new FmaR8W8Particle[nbParticles]; FmaR8W8Particle* const particles = new FmaR8W8Particle[nbParticles];
loader.fillParticle(particles,nbParticles); loader.fillParticle(particles,nbParticles);
// //
// Create octree
OctreeClass tree(NbLevels, SizeSubLevels, loader.getBoxWidth(), loader.getCenterOfBox());
// Insert particle in the tree // Insert particle in the tree
// //
OctreeClass tree(NbLevels, SizeSubLevels, loader.getBoxWidth(), loader.getCenterOfBox());
for(int idxPart = 0 ; idxPart < loader.getNumberOfParticles() ; ++idxPart){ for(int idxPart = 0 ; idxPart < loader.getNumberOfParticles() ; ++idxPart){
tree.insert(particles[idxPart].position , idxPart, particles[idxPart].physicalValue ); tree.insert(particles[idxPart].position , idxPart, particles[idxPart].physicalValue );
} }
......
This diff is collapsed.
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