Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sbalzarini Lab
S
Software
P
Parallel Computing
OpenFPM
openfpm_pdata
Commits
cf8f5ab1
Commit
cf8f5ab1
authored
Dec 07, 2015
by
Pietro Incardona
Browse files
Small fixe and changes
parent
900307d1
Changes
7
Hide whitespace changes
Inline
Side-by-side
configure.ac
View file @
cf8f5ab1
...
...
@@ -33,6 +33,11 @@ m4_ifdef([AX_BOOST_BASE],,[m4_include([m4/ax_boost_base.m4])])
m4_ifdef([AX_BOOST_IOSTREAMS],,[m4_include([m4/ax_boost_iostreams.m4])])
m4_ifdef([AX_BOOST_PROGRAM_OPTIONS],,[m4_include([m4/ax_boost_program_options.m4])])
m4_ifdef([AX_BOOST_UNIT_TEST_FRAMEWORK],,[m4_include([m4/ax_boost_unit_test_framework.m4])])
m4_ifdef([AX_BLAS],,[m4_include([m4/ax_blas.m4])])
m4_ifdef([AX_LAPACK],,[m4_include([m4/ax_lapack.m4])])
m4_ifdef([AX_SUITESPARSE],,[m4_include([m4/ax_suitesparse.m4])])
m4_ifdef([AX_EIGEN],,[m4_include([m4/ax_eigen.m4])])
CXXFLAGS+=" --std=c++11 "
NVCCFLAGS=" "
...
...
@@ -227,6 +232,24 @@ BOOST_CPPFLAGS=$(echo "$BOOST_CPPFLAGS" | sed -e 's/-I\/usr\/include[ \b]//g')
AC_SUBST(BOOST_LDFLAGS)
AC_SUBST(BOOST_CPPFLAGS)
###### Checking for OpenBLAS
AX_BLAS([],[echo "blas not found"
exit 204])
AX_LAPACK([],[echo "lapack not found"
exit 204])
###### Checking for SUITESPARSE
AX_SUITESPARSE([],[echo "suitesparse not found"
exit 205])
###### Checking for EIGEN
AX_EIGEN([],[echo "eigen not found"
exit 206])
####### Checking for GPU support
AX_CUDA
...
...
install
View file @
cf8f5ab1
...
...
@@ -124,6 +124,10 @@ echo -e "Installing requirements into: $i_dir "
MPI_installed
=
0
METIS_installed
=
0
BOOST_installed
=
0
LAPACK_installed
=
0
SUITESPARSE_installed
=
0
EIGEN_installed
=
0
blas_options
=
""
conf_err
=
1
## MPI
...
...
@@ -140,35 +144,15 @@ else
fi
fi
## if a new compiler has been installed reinstall all the dependencies
if
[
x
"
$compiler_opt
"
!=
x
""
]
;
then
./script/install_MPI.sh
$i_dir
$compiler_opt
export
PATH
=
"
$PATH
:
$i_dir
/MPI/bin"
configure_options
=
"
$configure_options
CXX=mpic++ "
MPI_installed
=
1
./script/install_BOOST.sh
$i_dir
$compiler_opt
configure_options
=
"
$configure_options
--with-boost=
$i_dir
/BOOST "
BOOST_installed
=
1
./script/install_METIS.sh
$i_dir
$compiler_gcc
$compiler_gpp
configure_options
=
"
$configure_options
--with-metis=
$i_dir
/METIS "
METIS_installed
=
1
./script/install_SuiteSparse.sh
$i_dir
$compiler_opt
configure_options
=
"
$configure_options
--with-suitesparse=
$i_dir
/SUITESPARSE "
SUITESPARSE_installed
=
1
./script/install_lapack.sh
$i_dir
$compiler_opt
configure_option
=
"
$configure_options
--with-lapack=
$i_dir
/LAPACK"
LAPACK_installed
=
1
fi
echo
"./configure
$options
$configure_options
"
if
[
$install_req
-eq
0
]
;
then
./configure
$options
$configure_options
./configure
$options
$configure_options
"
$blas_options
"
else
while
[
$conf_err
-ne
0
]
do
./configure
$options
$configure_options
./configure
$options
$configure_options
"
$blas_options
"
conf_err
=
$?
echo
"Configure script terminated with
$conf_err
"
...
...
@@ -208,7 +192,9 @@ else
echo
"Error the installation of LAPACK failed"
exit
1
fi
./script/install_SUITESPARSE.sh
$i_dir
$compiler_opt
./script/install_OPENBLAS.sh
$i_dir
$compiler_opt
LAPACK_installed
=
1
blas_options
=
"--with-blas=-L/home/i-bird/OPENBLAS/lib/ -lopenblas"
elif
[
$conf_err
-eq
205
]
;
then
echo
"SuiteSparse not found try to install"
if
[
$SUITESPARSE_installed
-eq
1
]
;
then
...
...
@@ -216,6 +202,17 @@ else
exit
1
fi
./script/install_SUITESPARSE.sh
$i_dir
$compiler_opt
configure_options
=
"
$configure_options
--with-suitesparse=
$i_dir
/SUITESPARSE "
SUITESPARSE_installed
=
1
elif
[
$conf_err
-eq
206
]
;
then
echo
"Eigen not found try to install"
if
[
$EIGEN_installed
-eq
1
]
;
then
echo
"Error the installation of Eigen failed"
exit
1
fi
./script/install_EIGEN.sh
$i_dir
$compiler_opt
configure_options
=
"
$configure_options
--with-eigen=
$i_dir
/EIGEN "
EIGEN_installed
=
1
elif
[
$conf_err
-ne
0
]
;
then
echo
"I do not know how to recover from this error"
exit
1
...
...
@@ -249,7 +246,7 @@ fi
echo
"Command used to configure"
echo
""
echo
-e
"
\0
33[1m ./configure
$options
$configure_options
\0
33[0m "
echo
-e
"
\0
33[1m ./configure
$options
$configure_options
"
$blas_options
"
\0
33[0m "
echo
""
if
[
$MPI_installed
-eq
1
]
;
then
echo
-e
"
\0
33[1;34;5m ---------------------------------------
\0
33[0m"
...
...
@@ -290,6 +287,30 @@ if [ $BOOST_installed -eq 1 ]; then
echo
-e
"
\0
33[1m export DYLD_LIBRARY_PATH=
\"\$
DYLD_LIBRARY_PATH:
$i_dir
/BOOST/lib
\"
\0
33[0m"
fi
fi
if
[
$LAPACK_installed
-eq
1
]
;
then
echo
""
echo
-e
"
\0
33[1;34;5m ---------------------------------------
\0
33[0m"
echo
-e
"
\0
33[1;34;5m --------------- OPENBLAS --------------
\0
33[0m"
echo
-e
" OPENBLAS has been installed into:
\0
33[1m
$i_dir
/OPENBLAS
\0
33[0m"
echo
""
if
[
x
"
$platform
"
=
x
"linux"
]
;
then
echo
-e
"
\0
33[1m export LD_LIBRARY_PATH=
\"\$
LD_LIBRARY_PATH:
$i_dir
/OPENBLAS/lib
\"
\0
33[0m "
else
echo
-e
"
\0
33[1m export DYLD_LIBRARY_PATH=
\"\$
DYLD_LIBRARY_PATH:
$i_dir
/OPENBLAS/lib
\"
\0
33[0m"
fi
fi
if
[
$SUITESPARSE_installed
-eq
1
]
;
then
echo
""
echo
-e
"
\0
33[1;34;5m ---------------------------------------
\0
33[0m"
echo
-e
"
\0
33[1;34;5m ------------- SUITESPARSE -------------
\0
33[0m"
echo
-e
" SUITESPARSE has been installed into:
\0
33[1m
$i_dir
/SUITESPARSE
\0
33[0m"
echo
""
if
[
x
"
$platform
"
=
x
"linux"
]
;
then
echo
-e
"
\0
33[1m export LD_LIBRARY_PATH=
\"\$
LD_LIBRARY_PATH:
$i_dir
/SUITESPARSE/lib
\"
\0
33[0m "
else
echo
-e
"
\0
33[1m export DYLD_LIBRARY_PATH=
\"\$
DYLD_LIBRARY_PATH:
$i_dir
/SUITESPARSE/lib
\"
\0
33[0m"
fi
fi
echo
""
echo
""
if
[
$conf_err
-ne
0
]
;
then
...
...
openfpm_numerics
@
dfb8b8f7
Subproject commit
32914d0aad507eae2f82e3ac006e4bab42e9e3ed
Subproject commit
dfb8b8f7b56e455c3e1db0ff39e5d513055eb472
src/Grid/grid_dist_id.hpp
View file @
cf8f5ab1
...
...
@@ -484,6 +484,19 @@ public:
// Decomposition used
typedef
Decomposition
decomposition
;
// value_type
typedef
T
value_type
;
/*! \brief Return the total number of points in the grid
*
* \return number of points
*
*/
size_t
size
()
const
{
return
ginfo_v
.
size
();
}
static
inline
Ghost
<
dim
,
float
>
convert_ghost
(
const
Ghost
<
dim
,
long
int
>
&
gd
,
const
CellDecomposer_sm
<
dim
,
St
>
&
cd_sm
)
{
Ghost
<
dim
,
float
>
gc
;
...
...
@@ -527,6 +540,16 @@ public:
InitializeStructures
(
g_sz
);
}
/*! \brief Get the spacing of the grid in direction i
*
* \return the spacing
*
*/
inline
St
spacing
(
size_t
i
)
const
{
return
cd_sm
.
getCellBox
().
getHigh
(
i
);
}
/*! \brief Constrcuctor
*
* \param g_sz array with the grid size on each dimension
...
...
@@ -639,7 +662,7 @@ public:
* \return an information object about this grid
*
*/
const
grid_sm
<
dim
,
T
>
&
getGridInfo
()
const
grid_sm
<
dim
,
T
>
&
getGridInfo
()
const
{
return
ginfo
;
}
...
...
@@ -649,7 +672,7 @@ public:
* \return an information object about this grid
*
*/
const
grid_sm
<
dim
,
void
>
&
getGridInfoVoid
()
const
grid_sm
<
dim
,
void
>
&
getGridInfoVoid
()
const
{
return
ginfo_v
;
}
...
...
@@ -724,7 +747,12 @@ public:
*/
grid_dist_iterator
<
dim
,
device_grid
,
FREE
>
getDomainIterator
()
{
grid_dist_iterator
<
dim
,
device_grid
,
FREE
>
it
(
loc_grid
,
gdb_ext
);
grid_key_dx
<
dim
>
stop
(
ginfo_v
.
getSize
());
grid_key_dx
<
dim
>
one
;
one
.
one
();
stop
=
stop
-
one
;
grid_dist_iterator
<
dim
,
device_grid
,
FREE
>
it
(
loc_grid
,
gdb_ext
,
stop
);
return
it
;
}
...
...
@@ -733,7 +761,7 @@ public:
*
*
*/
grid_dist_iterator
<
dim
,
device_grid
,
FIXED
>
getDomainGhostIterator
()
grid_dist_iterator
<
dim
,
device_grid
,
FIXED
>
getDomainGhostIterator
()
const
{
grid_dist_iterator
<
dim
,
device_grid
,
FIXED
>
it
(
loc_grid
,
gdb_ext
);
...
...
@@ -743,17 +771,37 @@ public:
/*! \brief It return an iterator that span the grid domain only in the specified
* part
*
* The key spanned are the one inside the box spanned by the start point and the end
* point included
*
* \param start point
* \param stop point
*
*/
grid_dist_iterator_sub
<
dim
,
device_grid
>
getSubDomainIterator
(
const
grid_key_dx
<
dim
>
&
start
,
const
grid_key_dx
<
dim
>
&
stop
)
grid_dist_iterator_sub
<
dim
,
device_grid
>
getSubDomainIterator
(
const
grid_key_dx
<
dim
>
&
start
,
const
grid_key_dx
<
dim
>
&
stop
)
const
{
grid_dist_iterator_sub
<
dim
,
device_grid
>
it
(
start
,
stop
,
loc_grid
,
gdb_ext
);
return
it
;
}
/*! \brief It return an iterator that span the grid domain only in the specified
* part
*
* The key spanned are the one inside the box spanned by the start point and the end
* point included
*
* \param start point
* \param stop point
*
*/
grid_dist_iterator_sub
<
dim
,
device_grid
>
getSubDomainIterator
(
const
long
int
(
&
start
)[
dim
],
const
long
int
(
&
stop
)[
dim
])
const
{
grid_dist_iterator_sub
<
dim
,
device_grid
>
it
(
grid_key_dx
<
dim
>
(
start
),
grid_key_dx
<
dim
>
(
stop
),
loc_grid
,
gdb_ext
);
return
it
;
}
//! Destructor
~
grid_dist_id
()
{
...
...
@@ -771,6 +819,16 @@ public:
return
v_cl
;
}
/*! \brief Indicate that this grid is not staggered
*
* \return false
*
*/
bool
is_staggered
()
{
return
false
;
}
/*! \brief Get the reference of the selected element
*
* \param p property to get (is an integer)
...
...
src/Grid/grid_dist_id_iterator.hpp
View file @
cf8f5ab1
...
...
@@ -93,8 +93,8 @@ class grid_dist_iterator<dim,device_grid,FREE>
//! Actual iterator
grid_key_dx_iterator_sub
<
dim
>
a_it
;
//!
margin of
the grid
iterator
size_t
m
;
//!
stop point (is
the grid
size)
grid_key_dx
<
dim
>
stop
;
/*! \brief from g_c increment g_c until you find a valid grid
*
...
...
@@ -124,7 +124,7 @@ class grid_dist_iterator<dim,device_grid,FREE>
gList
=
tmp
.
gList
;
gdb_ext
=
tmp
.
gdb_ext
;
a_it
.
reinitialize
(
tmp
.
a_it
);
m
=
tmp
.
m
;
stop
=
tmp
.
stop
;
return
*
this
;
}
...
...
@@ -134,8 +134,8 @@ class grid_dist_iterator<dim,device_grid,FREE>
* \param gk std::vector of the local grid
*
*/
grid_dist_iterator
(
Vcluster_object_array
<
device_grid
>
&
gk
,
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
)
:
g_c
(
0
),
gList
(
gk
),
gdb_ext
(
gdb_ext
),
m
(
0
)
grid_dist_iterator
(
Vcluster_object_array
<
device_grid
>
&
gk
,
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
,
grid_key_dx
<
dim
>
stop
)
:
g_c
(
0
),
gList
(
gk
),
gdb_ext
(
gdb_ext
),
stop
(
stop
)
{
// Initialize the current iterator
// with the first grid
...
...
@@ -196,6 +196,34 @@ class grid_dist_iterator<dim,device_grid,FREE>
{
return
grid_dist_key_dx
<
dim
>
(
g_c
,
a_it
.
get
());
}
/*! \brief it return the stop point of the iterator
*
* The stop point of the iterator is just the grid size
*
* \return the stop point
*
*/
inline
grid_key_dx
<
dim
>
getStop
()
const
{
return
stop
;
}
/*! \brief it return the start point of the iterator
*
* The start point of the iterator is the point with all coordinates zeros
*
* \return the start point
*
*/
inline
grid_key_dx
<
dim
>
getStart
()
const
{
grid_key_dx
<
dim
>
start
;
start
.
zero
();
return
start
;
}
};
...
...
src/Grid/grid_dist_id_iterator_sub.hpp
View file @
cf8f5ab1
...
...
@@ -34,10 +34,10 @@ class grid_dist_iterator_sub
size_t
g_c
;
//! List of the grids we are going to iterate
Vcluster_object_array
<
device_grid
>
&
gList
;
const
Vcluster_object_array
<
device_grid
>
&
gList
;
//! Extension of each grid: domain and ghost + domain
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
;
const
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
;
//! Actual iterator
grid_key_dx_iterator_sub
<
dim
>
a_it
;
...
...
@@ -144,7 +144,7 @@ class grid_dist_iterator_sub
* \param gdb_ext information about the local grids
*
*/
grid_dist_iterator_sub
(
const
grid_key_dx
<
dim
>
&
start
,
const
grid_key_dx
<
dim
>
&
stop
,
Vcluster_object_array
<
device_grid
>
&
gk
,
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
)
grid_dist_iterator_sub
(
const
grid_key_dx
<
dim
>
&
start
,
const
grid_key_dx
<
dim
>
&
stop
,
const
Vcluster_object_array
<
device_grid
>
&
gk
,
const
openfpm
::
vector
<
GBoxes
<
device_grid
::
dims
>>
&
gdb_ext
)
:
g_c
(
0
),
gList
(
gk
),
gdb_ext
(
gdb_ext
),
start
(
start
),
stop
(
stop
),
m
(
0
)
{
// Initialize the current iterator
...
...
@@ -233,7 +233,7 @@ class grid_dist_iterator_sub
* \return the starting point
*
*/
inline
grid_key_dx
<
dim
>
getStart
()
inline
grid_key_dx
<
dim
>
getStart
()
const
{
return
start
;
}
...
...
@@ -243,7 +243,7 @@ class grid_dist_iterator_sub
* \return the stop point
*
*/
inline
grid_key_dx
<
dim
>
getStop
()
inline
grid_key_dx
<
dim
>
getStop
()
const
{
return
stop
;
}
...
...
src/Grid/grid_dist_id_unit_test.hpp
View file @
cf8f5ab1
...
...
@@ -268,6 +268,15 @@ void Test2D(const Box<2,float> & domain, long int k)
auto
dom2
=
g_dist
.
getDomainIterator
();
grid_key_dx
<
2
>
start
=
dom2
.
getStart
();
grid_key_dx
<
2
>
stop
=
dom2
.
getStop
();
BOOST_REQUIRE_EQUAL
(
stop
.
get
(
0
),
g_dist
.
size
(
0
));
BOOST_REQUIRE_EQUAL
(
stop
.
get
(
1
),
g_dist
.
size
(
1
));
BOOST_REQUIRE_EQUAL
(
start
.
get
(
0
),
0
);
BOOST_REQUIRE_EQUAL
(
start
.
get
(
1
),
0
);
bool
match
=
true
;
// check that the grid store the correct information
...
...
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