Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ScalFMM
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
solverstack
ScalFMM
Commits
0679c0f9
Commit
0679c0f9
authored
Feb 13, 2015
by
BRAMAS Berenger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add an interface to know what is supporting a kernel in starpu
parent
2979d418
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
180 additions
and
47 deletions
+180
-47
Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp
Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp
+50
-17
Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp
Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp
+64
-23
Src/GroupTree/FStarPUKernelCapacities.hpp
Src/GroupTree/FStarPUKernelCapacities.hpp
+47
-0
Tests/noDist/testBlockedAlgorithm.cpp
Tests/noDist/testBlockedAlgorithm.cpp
+4
-2
Tests/noDist/testBlockedChebyshev.cpp
Tests/noDist/testBlockedChebyshev.cpp
+2
-1
Tests/noDist/testBlockedMpiAlgorithm.cpp
Tests/noDist/testBlockedMpiAlgorithm.cpp
+4
-1
Tests/noDist/testBlockedMpiChebyshev.cpp
Tests/noDist/testBlockedMpiChebyshev.cpp
+3
-1
Tests/noDist/testBlockedRotation.cpp
Tests/noDist/testBlockedRotation.cpp
+3
-1
Tests/noDist/testBlockedTree.cpp
Tests/noDist/testBlockedTree.cpp
+3
-1
No files found.
Src/GroupTree/FGroupTaskStarpuAlgorithm.hpp
View file @
0679c0f9
...
...
@@ -51,6 +51,7 @@ protected:
int
MaxThreads
;
//< The number of threads
OctreeClass
*
const
tree
;
//< The Tree
KernelClass
*
const
originalCpuKernel
;
std
::
vector
<
starpu_data_handle_t
>*
handles_up
;
std
::
vector
<
starpu_data_handle_t
>*
handles_down
;
...
...
@@ -74,7 +75,7 @@ protected:
public:
FGroupTaskStarPUAlgorithm
(
OctreeClass
*
const
inTree
,
KernelClass
*
inKernels
,
const
int
inMaxThreads
=
-
1
)
:
MaxThreads
(
inMaxThreads
),
tree
(
inTree
),
:
MaxThreads
(
inMaxThreads
),
tree
(
inTree
),
originalCpuKernel
(
inKernels
),
handles_up
(
nullptr
),
handles_down
(
nullptr
),
cpuWrapper
(
tree
->
getHeight
()),
wrapperptr
(
&
wrappers
){
FAssertLF
(
tree
,
"tree cannot be null"
);
...
...
@@ -148,8 +149,12 @@ public:
protected:
void
initCodelet
(){
memset
(
&
p2m_cl
,
0
,
sizeof
(
p2m_cl
));
p2m_cl
.
where
=
STARPU_CPU
;
p2m_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
bottomPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2M
()){
p2m_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
bottomPassCallback
;
p2m_cl
.
where
|=
STARPU_CPU
;
}
#endif
p2m_cl
.
nbuffers
=
2
;
p2m_cl
.
modes
[
0
]
=
STARPU_RW
;
p2m_cl
.
modes
[
1
]
=
STARPU_R
;
...
...
@@ -158,15 +163,23 @@ protected:
memset
(
m2m_cl
,
0
,
sizeof
(
m2m_cl
[
0
])
*
9
);
memset
(
l2l_cl
,
0
,
sizeof
(
l2l_cl
[
0
])
*
9
);
for
(
int
idx
=
0
;
idx
<
9
;
++
idx
){
m2m_cl
[
idx
].
where
=
STARPU_CPU
;
m2m_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
upwardPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2M
()){
m2m_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
upwardPassCallback
;
m2m_cl
[
idx
].
where
|=
STARPU_CPU
;
}
#endif
m2m_cl
[
idx
].
nbuffers
=
idx
+
2
;
m2m_cl
[
idx
].
dyn_modes
=
(
starpu_data_access_mode
*
)
malloc
((
idx
+
2
)
*
sizeof
(
starpu_data_access_mode
));
m2m_cl
[
idx
].
dyn_modes
[
0
]
=
STARPU_RW
;
m2m_cl
[
idx
].
name
=
"m2m_cl"
;
l2l_cl
[
idx
].
where
=
STARPU_CPU
;
l2l_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
downardPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportL2L
()){
l2l_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
downardPassCallback
;
l2l_cl
[
idx
].
where
|=
STARPU_CPU
;
}
#endif
l2l_cl
[
idx
].
nbuffers
=
idx
+
2
;
l2l_cl
[
idx
].
dyn_modes
=
(
starpu_data_access_mode
*
)
malloc
((
idx
+
2
)
*
sizeof
(
starpu_data_access_mode
));
l2l_cl
[
idx
].
dyn_modes
[
0
]
=
STARPU_R
;
...
...
@@ -179,37 +192,57 @@ protected:
}
memset
(
&
l2p_cl
,
0
,
sizeof
(
l2p_cl
));
l2p_cl
.
where
=
STARPU_CPU
;
l2p_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
mergePassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportL2P
()){
l2p_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
mergePassCallback
;
l2p_cl
.
where
|=
STARPU_CPU
;
}
#endif
l2p_cl
.
nbuffers
=
2
;
l2p_cl
.
modes
[
0
]
=
STARPU_R
;
l2p_cl
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
l2p_cl
.
name
=
"l2p_cl"
;
memset
(
&
p2p_cl_in
,
0
,
sizeof
(
p2p_cl_in
));
p2p_cl_in
.
where
=
STARPU_CPU
;
p2p_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2P
()){
p2p_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInPassCallback
;
p2p_cl_in
.
where
|=
STARPU_CPU
;
}
#endif
p2p_cl_in
.
nbuffers
=
1
;
p2p_cl_in
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_in
.
name
=
"p2p_cl_in"
;
memset
(
&
p2p_cl_inout
,
0
,
sizeof
(
p2p_cl_inout
));
p2p_cl_inout
.
where
=
STARPU_CPU
;
p2p_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2P
()){
p2p_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallback
;
p2p_cl_inout
.
where
|=
STARPU_CPU
;
}
#endif
p2p_cl_inout
.
nbuffers
=
2
;
p2p_cl_inout
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_inout
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_inout
.
name
=
"p2p_cl_inout"
;
memset
(
&
m2l_cl_in
,
0
,
sizeof
(
m2l_cl_in
));
m2l_cl_in
.
where
=
STARPU_CPU
;
m2l_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
m2l_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInPassCallback
;
m2l_cl_in
.
where
|=
STARPU_CPU
;
}
#endif
m2l_cl_in
.
nbuffers
=
2
;
m2l_cl_in
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
m2l_cl_in
.
modes
[
1
]
=
STARPU_R
;
m2l_cl_in
.
name
=
"m2l_cl_in"
;
memset
(
&
m2l_cl_inout
,
0
,
sizeof
(
m2l_cl_inout
));
m2l_cl_inout
.
where
=
STARPU_CPU
;
m2l_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
m2l_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallback
;
m2l_cl_inout
.
where
|=
STARPU_CPU
;
}
#endif
m2l_cl_inout
.
nbuffers
=
4
;
m2l_cl_inout
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
m2l_cl_inout
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
...
...
Src/GroupTree/FGroupTaskStarpuMpiAlgorithm.hpp
View file @
0679c0f9
...
...
@@ -64,6 +64,7 @@ protected:
int
MaxThreads
;
//< The number of threads
OctreeClass
*
const
tree
;
//< The Tree
KernelClass
*
const
originalCpuKernel
;
std
::
vector
<
starpu_data_handle_t
>*
handles_up
;
std
::
vector
<
starpu_data_handle_t
>*
handles_down
;
...
...
@@ -89,7 +90,7 @@ protected:
public:
FGroupTaskStarPUMpiAlgorithm
(
const
FMpi
::
FComm
&
inComm
,
OctreeClass
*
const
inTree
,
KernelClass
*
inKernels
,
const
int
inMaxThreads
=
-
1
)
:
comm
(
inComm
),
MaxThreads
(
inMaxThreads
),
tree
(
inTree
),
:
comm
(
inComm
),
MaxThreads
(
inMaxThreads
),
tree
(
inTree
),
originalCpuKernel
(
inKernels
),
handles_up
(
nullptr
),
handles_down
(
nullptr
),
cpuWrapper
(
tree
->
getHeight
()),
wrapperptr
(
&
wrappers
){
FAssertLF
(
tree
,
"tree cannot be null"
);
...
...
@@ -176,8 +177,12 @@ public:
protected:
void
initCodelet
(){
memset
(
&
p2m_cl
,
0
,
sizeof
(
p2m_cl
));
p2m_cl
.
where
=
STARPU_CPU
;
p2m_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
bottomPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2M
()){
p2m_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
bottomPassCallback
;
p2m_cl
.
where
|=
STARPU_CPU
;
}
#endif
p2m_cl
.
nbuffers
=
2
;
p2m_cl
.
modes
[
0
]
=
STARPU_RW
;
p2m_cl
.
modes
[
1
]
=
STARPU_R
;
...
...
@@ -186,15 +191,23 @@ protected:
memset
(
m2m_cl
,
0
,
sizeof
(
m2m_cl
[
0
])
*
9
);
memset
(
l2l_cl
,
0
,
sizeof
(
l2l_cl
[
0
])
*
9
);
for
(
int
idx
=
0
;
idx
<
9
;
++
idx
){
m2m_cl
[
idx
].
where
=
STARPU_CPU
;
m2m_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
upwardPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2M
()){
m2m_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
upwardPassCallback
;
m2m_cl
[
idx
].
where
|=
STARPU_CPU
;
}
#endif
m2m_cl
[
idx
].
nbuffers
=
idx
+
2
;
m2m_cl
[
idx
].
dyn_modes
=
(
starpu_data_access_mode
*
)
malloc
((
idx
+
2
)
*
sizeof
(
starpu_data_access_mode
));
m2m_cl
[
idx
].
dyn_modes
[
0
]
=
STARPU_RW
;
m2m_cl
[
idx
].
name
=
"m2m_cl"
;
l2l_cl
[
idx
].
where
=
STARPU_CPU
;
l2l_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
downardPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportL2L
()){
l2l_cl
[
idx
].
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
downardPassCallback
;
l2l_cl
[
idx
].
where
|=
STARPU_CPU
;
}
#endif
l2l_cl
[
idx
].
nbuffers
=
idx
+
2
;
l2l_cl
[
idx
].
dyn_modes
=
(
starpu_data_access_mode
*
)
malloc
((
idx
+
2
)
*
sizeof
(
starpu_data_access_mode
));
l2l_cl
[
idx
].
dyn_modes
[
0
]
=
STARPU_R
;
...
...
@@ -207,37 +220,57 @@ protected:
}
memset
(
&
l2p_cl
,
0
,
sizeof
(
l2p_cl
));
l2p_cl
.
where
=
STARPU_CPU
;
l2p_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
mergePassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportL2P
()){
l2p_cl
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
mergePassCallback
;
l2p_cl
.
where
|=
STARPU_CPU
;
}
#endif
l2p_cl
.
nbuffers
=
2
;
l2p_cl
.
modes
[
0
]
=
STARPU_R
;
l2p_cl
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
l2p_cl
.
name
=
"l2p_cl"
;
memset
(
&
p2p_cl_in
,
0
,
sizeof
(
p2p_cl_in
));
p2p_cl_in
.
where
=
STARPU_CPU
;
p2p_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2P
()){
p2p_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInPassCallback
;
p2p_cl_in
.
where
|=
STARPU_CPU
;
}
#endif
p2p_cl_in
.
nbuffers
=
1
;
p2p_cl_in
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_in
.
name
=
"p2p_cl_in"
;
memset
(
&
p2p_cl_inout
,
0
,
sizeof
(
p2p_cl_inout
));
p2p_cl_inout
.
where
=
STARPU_CPU
;
p2p_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportP2P
()){
p2p_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallback
;
p2p_cl_inout
.
where
|=
STARPU_CPU
;
}
#endif
p2p_cl_inout
.
nbuffers
=
2
;
p2p_cl_inout
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_inout
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_inout
.
name
=
"p2p_cl_inout"
;
memset
(
&
m2l_cl_in
,
0
,
sizeof
(
m2l_cl_in
));
m2l_cl_in
.
where
=
STARPU_CPU
;
m2l_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
m2l_cl_in
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInPassCallback
;
m2l_cl_in
.
where
|=
STARPU_CPU
;
}
#endif
m2l_cl_in
.
nbuffers
=
2
;
m2l_cl_in
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
m2l_cl_in
.
modes
[
1
]
=
STARPU_R
;
m2l_cl_in
.
name
=
"m2l_cl_in"
;
memset
(
&
m2l_cl_inout
,
0
,
sizeof
(
m2l_cl_inout
));
m2l_cl_inout
.
where
=
STARPU_CPU
;
m2l_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallback
;
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
m2l_cl_inout
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallback
;
m2l_cl_inout
.
where
|=
STARPU_CPU
;
}
#endif
m2l_cl_inout
.
nbuffers
=
4
;
m2l_cl_inout
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
m2l_cl_inout
.
modes
[
1
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
...
...
@@ -274,17 +307,25 @@ protected:
////////////////////////////////////////////////////////////////////////////
void
initCodeletMpi
(){
memset
(
&
p2p_cl_inout_mpi
,
0
,
sizeof
(
p2p_cl_inout_mpi
));
p2p_cl_inout_mpi
.
where
=
STARPU_CPU
;
p2p_cl_inout_mpi
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallbackMpi
;
memset
(
&
p2p_cl_inout_mpi
,
0
,
sizeof
(
p2p_cl_inout_mpi
));
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
p2p_cl_inout_mpi
.
where
|=
STARPU_CPU
;
p2p_cl_inout_mpi
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
directInoutPassCallbackMpi
;
}
#endif
p2p_cl_inout_mpi
.
nbuffers
=
2
;
p2p_cl_inout_mpi
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
p2p_cl_inout_mpi
.
modes
[
1
]
=
STARPU_R
;
p2p_cl_inout_mpi
.
name
=
"p2p_cl_inout_mpi"
;
memset
(
&
m2l_cl_inout_mpi
,
0
,
sizeof
(
m2l_cl_inout_mpi
));
m2l_cl_inout_mpi
.
where
=
STARPU_CPU
;
m2l_cl_inout_mpi
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallbackMpi
;
memset
(
&
m2l_cl_inout_mpi
,
0
,
sizeof
(
m2l_cl_inout_mpi
));
#ifdef STARPU_USE_CPU
if
(
originalCpuKernel
->
supportM2L
()){
m2l_cl_inout_mpi
.
where
|=
STARPU_CPU
;
m2l_cl_inout_mpi
.
cpu_funcs
[
0
]
=
StarPUCpuWrapperClass
::
transferInoutPassCallbackMpi
;
}
#endif
m2l_cl_inout_mpi
.
nbuffers
=
2
;
m2l_cl_inout_mpi
.
modes
[
0
]
=
starpu_data_access_mode
(
STARPU_RW
|
STARPU_COMMUTE
);
m2l_cl_inout_mpi
.
modes
[
1
]
=
STARPU_R
;
...
...
Src/GroupTree/FStarPUKernelCapacities.hpp
0 → 100644
View file @
0679c0f9
#ifndef FSTARPUKERNELCAPACITIES_HPP
#define FSTARPUKERNELCAPACITIES_HPP
/** A class used with the starpu system should
* implement this interface in order to inform the algorithm about what the kernel
* is doing.
*/
class
FStarPUKernelCapacities
{
public:
virtual
bool
supportP2M
()
const
=
0
;
virtual
bool
supportM2M
()
const
=
0
;
virtual
bool
supportM2L
()
const
=
0
;
virtual
bool
supportL2L
()
const
=
0
;
virtual
bool
supportL2P
()
const
=
0
;
virtual
bool
supportP2P
()
const
=
0
;
};
/**
* This is for the kernels that implement all the methods.
*/
template
<
class
BaseClass
>
class
FStarPUAllYesCapacities
:
public
BaseClass
,
public
FStarPUKernelCapacities
{
public:
using
BaseClass
::
BaseClass
;
bool
supportP2M
()
const
override
{
return
true
;
}
bool
supportM2M
()
const
override
{
return
true
;
}
bool
supportM2L
()
const
override
{
return
true
;
}
bool
supportL2L
()
const
override
{
return
true
;
}
bool
supportL2P
()
const
override
{
return
true
;
}
bool
supportP2P
()
const
override
{
return
true
;
}
};
#endif // FSTARPUKERNELCAPACITIES_HPP
Tests/noDist/testBlockedAlgorithm.cpp
View file @
0679c0f9
...
...
@@ -33,11 +33,13 @@
#include "../../Src/Components/FTestParticleContainer.hpp"
#include "../../Src/Components/FTestCell.hpp"
#include "../../Src/Components/FTestKernels.hpp"
#include "../Src/GroupTree/FGroupTestParticleContainer.hpp"
#include "../
../
Src/GroupTree/FGroupTestParticleContainer.hpp"
#include "../../Src/Files/FFmaGenericLoader.hpp"
#include "../../Src/Core/FFmmAlgorithm.hpp"
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
int
main
(
int
argc
,
char
*
argv
[]){
const
FParameterNames
LocalOptionBlocSize
{
{
"-bs"
},
...
...
@@ -50,7 +52,7 @@ int main(int argc, char* argv[]){
typedef
FTestCell
GroupCellClass
;
typedef
FGroupTestParticleContainer
GroupContainerClass
;
typedef
FGroupTree
<
GroupCellClass
,
GroupContainerClass
,
2
,
long
long
int
>
GroupOctreeClass
;
typedef
F
TestKernels
<
GroupCellClass
,
GroupContainerClass
>
GroupKernelClass
;
typedef
F
StarPUAllYesCapacities
<
FTestKernels
<
GroupCellClass
,
GroupContainerClass
>>
GroupKernelClass
;
#ifdef ScalFMM_USE_STARPU
typedef
FGroupTaskStarPUAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
GroupCellClass
,
GroupKernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
GroupContainerClass
>
GroupAlgorithm
;
#elif defined(ScalFMM_USE_OMP4)
...
...
Tests/noDist/testBlockedChebyshev.cpp
View file @
0679c0f9
...
...
@@ -46,6 +46,7 @@
#include <memory>
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
...
...
@@ -63,7 +64,7 @@ int main(int argc, char* argv[]){
typedef
FChebCell
<
ORDER
>
GroupCellClass
;
typedef
FP2PGroupParticleContainer
<>
GroupContainerClass
;
typedef
FGroupTree
<
GroupCellClass
,
GroupContainerClass
,
5
,
FReal
>
GroupOctreeClass
;
typedef
F
ChebSymKernel
<
GroupCellClass
,
GroupContainerClass
,
MatrixKernelClass
,
ORDER
>
GroupKernelClass
;
typedef
F
StarPUAllYesCapacities
<
FChebSymKernel
<
GroupCellClass
,
GroupContainerClass
,
MatrixKernelClass
,
ORDER
>
>
GroupKernelClass
;
#ifdef ScalFMM_USE_STARPU
typedef
FGroupTaskStarPUAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
GroupCellClass
,
GroupKernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
GroupContainerClass
>
GroupAlgorithm
;
#elif defined(ScalFMM_USE_OMP4)
...
...
Tests/noDist/testBlockedMpiAlgorithm.cpp
View file @
0679c0f9
...
...
@@ -37,6 +37,9 @@
#include "../../Src/Core/FFmmAlgorithm.hpp"
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
int
getTreeCoordinate
(
const
FReal
inRelativePosition
,
const
FReal
boxWidth
,
const
FReal
boxWidthAtLeafLevel
,
const
int
treeHeight
)
{
FAssertLF
(
(
inRelativePosition
>=
0
&&
inRelativePosition
<=
boxWidth
),
"inRelativePosition : "
,
inRelativePosition
);
...
...
@@ -75,7 +78,7 @@ int main(int argc, char* argv[]){
typedef
FTestCell
GroupCellClass
;
typedef
FGroupTestParticleContainer
GroupContainerClass
;
typedef
FGroupTree
<
GroupCellClass
,
GroupContainerClass
,
2
,
long
long
int
>
GroupOctreeClass
;
typedef
F
TestKernels
<
GroupCellClass
,
GroupContainerClass
>
GroupKernelClass
;
typedef
F
StarPUAllYesCapacities
<
FTestKernels
<
GroupCellClass
,
GroupContainerClass
>>
GroupKernelClass
;
typedef
FGroupTaskStarPUMpiAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
GroupCellClass
,
GroupKernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
GroupContainerClass
>
GroupAlgorithm
;
FMpi
mpiComm
(
argc
,
argv
);
...
...
Tests/noDist/testBlockedMpiChebyshev.cpp
View file @
0679c0f9
...
...
@@ -45,6 +45,8 @@
#include "../../Src/Files/FMpiFmaGenericLoader.hpp"
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
#include <memory>
...
...
@@ -87,7 +89,7 @@ int main(int argc, char* argv[]){
typedef
FChebCell
<
ORDER
>
GroupCellClass
;
typedef
FP2PGroupParticleContainer
<>
GroupContainerClass
;
typedef
FGroupTree
<
GroupCellClass
,
GroupContainerClass
,
5
,
FReal
>
GroupOctreeClass
;
typedef
F
ChebSymKernel
<
GroupCellClass
,
GroupContainerClass
,
MatrixKernelClass
,
ORDER
>
GroupKernelClass
;
typedef
F
StarPUAllYesCapacities
<
FChebSymKernel
<
GroupCellClass
,
GroupContainerClass
,
MatrixKernelClass
,
ORDER
>
>
GroupKernelClass
;
typedef
FGroupTaskStarPUMpiAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
GroupCellClass
,
GroupKernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
GroupContainerClass
>
GroupAlgorithm
;
// Get params
...
...
Tests/noDist/testBlockedRotation.cpp
View file @
0679c0f9
...
...
@@ -40,6 +40,8 @@
#include "../../Src/Core/FFmmAlgorithm.hpp"
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
#include <memory>
...
...
@@ -58,7 +60,7 @@ int main(int argc, char* argv[]){
typedef
FRotationCell
<
P
>
GroupCellClass
;
typedef
FP2PGroupParticleContainer
<>
GroupContainerClass
;
typedef
FGroupTree
<
GroupCellClass
,
GroupContainerClass
,
5
,
FReal
>
GroupOctreeClass
;
typedef
F
RotationKernel
<
GroupCellClass
,
GroupContainerClass
,
P
>
GroupKernelClass
;
typedef
F
StarPUAllYesCapacities
<
FRotationKernel
<
GroupCellClass
,
GroupContainerClass
,
P
>
>
GroupKernelClass
;
#ifdef ScalFMM_USE_STARPU
typedef
FGroupTaskStarPUAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
GroupCellClass
,
GroupKernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
GroupContainerClass
>
GroupAlgorithm
;
#elif defined(ScalFMM_USE_OMP4)
...
...
Tests/noDist/testBlockedTree.cpp
View file @
0679c0f9
...
...
@@ -40,6 +40,8 @@
#include "../../Src/Utils/FParameterNames.hpp"
#include "../../Src/GroupTree/FStarPUKernelCapacities.hpp"
int
main
(
int
argc
,
char
*
argv
[]){
const
FParameterNames
LocalOptionBlocSize
{
{
"-bs"
},
...
...
@@ -95,7 +97,7 @@ int main(int argc, char* argv[]){
typedef
F
RotationKernel
<
CellClass
,
FP2PGroupParticleContainer
<>
,
P
>
KernelClass
;
typedef
F
StarPUAllYesCapacities
<
FRotationKernel
<
CellClass
,
FP2PGroupParticleContainer
<>
,
P
>
>
KernelClass
;
#ifdef ScalFMM_USE_STARPU
typedef
FGroupTaskStarPUAlgorithm
<
GroupOctreeClass
,
typename
GroupOctreeClass
::
CellGroupClass
,
CellClass
,
KernelClass
,
typename
GroupOctreeClass
::
ParticleGroupClass
,
FP2PGroupParticleContainer
<>
>
GroupAlgorithm
;
#elif defined(ScalFMM_USE_OMP4)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment