Skip to content
Snippets Groups Projects
Commit 81eb6afa authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

replaced size_t by unsigned int and unsigned char for cache

parent 840571c6
No related branches found
No related tags found
2 merge requests!2Develop,!1Develop
...@@ -388,12 +388,12 @@ AcousticSolverTest::AcousticSolverTest(const long int& nj) ...@@ -388,12 +388,12 @@ AcousticSolverTest::AcousticSolverTest(const long int& nj)
++iteration; ++iteration;
} }
// { {
// std::ofstream fout("rho"); std::ofstream fout("rho");
// for (int j=0; j<nj; ++j) { for (int j=0; j<nj; ++j) {
// fout << xj[j][0] << ' ' << rhoj[j] << '\n'; fout << xj[j][0] << ' ' << rhoj[j] << '\n';
// } }
// } }
std::cout << "* " << rang::style::underline << "Final time" << rang::style::reset std::cout << "* " << rang::style::underline << "Final time" << rang::style::reset
<< ": " << rang::fgB::green << t << rang::fg::reset << " (" << iteration << " iterations)\n"; << ": " << rang::fgB::green << t << rang::fg::reset << " (" << iteration << " iterations)\n";
......
...@@ -87,9 +87,9 @@ private: ...@@ -87,9 +87,9 @@ private:
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
const Kokkos::View<const Rdd*> const Kokkos::View<const Rdd*>
computeAr(const Kokkos::View<const Rdd*[2]>& Ajr) { computeAr(const Kokkos::View<const Rdd*[2]>& Ajr) {
const Kokkos::View<const size_t*[2]>& node_cells = m_connectivity.nodeCells(); const Kokkos::View<const unsigned int*[2]> node_cells = m_connectivity.nodeCells();
const Kokkos::View<const size_t*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode(); const Kokkos::View<const unsigned short*[2]> node_cell_local_node = m_connectivity.nodeCellLocalNode();
const Kokkos::View<const size_t*>& node_nb_cells = m_connectivity.nodeNbCells(); const Kokkos::View<const unsigned short*> node_nb_cells = m_connectivity.nodeNbCells();
Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) { Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) {
Rdd sum = zero; Rdd sum = zero;
...@@ -110,9 +110,9 @@ private: ...@@ -110,9 +110,9 @@ private:
const Kokkos::View<const Rd*[2]>& Cjr, const Kokkos::View<const Rd*[2]>& Cjr,
const Kokkos::View<const Rd*>& uj, const Kokkos::View<const Rd*>& uj,
const Kokkos::View<const double*>& pj) { const Kokkos::View<const double*>& pj) {
const Kokkos::View<const size_t*[2]>& node_cells = m_connectivity.nodeCells(); const Kokkos::View<const unsigned int*[2]>& node_cells = m_connectivity.nodeCells();
const Kokkos::View<const size_t*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode(); const Kokkos::View<const unsigned short*[2]>& node_cell_local_node = m_connectivity.nodeCellLocalNode();
const Kokkos::View<const size_t*>& node_nb_cells = m_connectivity.nodeNbCells(); const Kokkos::View<const unsigned short*>& node_nb_cells = m_connectivity.nodeNbCells();
Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) { Kokkos::parallel_for(m_nr, KOKKOS_LAMBDA(const int& r) {
Rd& br = m_br(r); Rd& br = m_br(r);
...@@ -147,7 +147,7 @@ private: ...@@ -147,7 +147,7 @@ private:
const Kokkos::View<const Rd*[2]>& Cjr, const Kokkos::View<const Rd*[2]>& Cjr,
const Kokkos::View<const Rd*>& uj, const Kokkos::View<const Rd*>& uj,
const Kokkos::View<const double*>& pj) { const Kokkos::View<const double*>& pj) {
const Kokkos::View<const size_t*[2]>& cell_nodes = m_connectivity.cellNodes(); const Kokkos::View<const unsigned int*[2]>& cell_nodes = m_connectivity.cellNodes();
Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j) { Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j) {
for (int r=0; r<2; ++r) { for (int r=0; r<2; ++r) {
m_Fjr(j,r) = Ajr(j,r)*(uj(j)-ur(cell_nodes(j,r)))+pj(j)*Cjr(j,r); m_Fjr(j,r) = Ajr(j,r)*(uj(j)-ur(cell_nodes(j,r)))+pj(j)*Cjr(j,r);
...@@ -248,7 +248,7 @@ public: ...@@ -248,7 +248,7 @@ public:
Kokkos::View<Rd*> xr = mesh.xr(); Kokkos::View<Rd*> xr = mesh.xr();
const Kokkos::View<const size_t*[2]>& cell_nodes = m_connectivity.cellNodes(); const Kokkos::View<const unsigned int*[2]>& cell_nodes = m_connectivity.cellNodes();
Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j){ Kokkos::parallel_for(m_nj, KOKKOS_LAMBDA(const int& j){
xj[j] = 0.5*(xr[cell_nodes(j,0)]+xr[cell_nodes(j,1)]); xj[j] = 0.5*(xr[cell_nodes(j,0)]+xr[cell_nodes(j,1)]);
}); });
......
...@@ -13,10 +13,10 @@ private: ...@@ -13,10 +13,10 @@ private:
const size_t m_number_of_cells; const size_t m_number_of_cells;
const size_t m_number_of_nodes; const size_t m_number_of_nodes;
Kokkos::View<size_t*[2]> m_cell_nodes; Kokkos::View<unsigned int*[2]> m_cell_nodes;
Kokkos::View<size_t*> m_node_nb_cells; Kokkos::View<unsigned short*> m_node_nb_cells;
Kokkos::View<size_t*[2]> m_node_cells; Kokkos::View<unsigned int*[2]> m_node_cells;
Kokkos::View<size_t*[2]> m_node_cell_local_node; Kokkos::View<unsigned short*[2]> m_node_cell_local_node;
public: public:
const size_t& numberOfNodes() const const size_t& numberOfNodes() const
...@@ -29,22 +29,22 @@ public: ...@@ -29,22 +29,22 @@ public:
return m_number_of_cells; return m_number_of_cells;
} }
const Kokkos::View<const size_t*[2]> cellNodes() const const Kokkos::View<const unsigned int*[2]> cellNodes() const
{ {
return m_cell_nodes; return m_cell_nodes;
} }
const Kokkos::View<const size_t*> nodeNbCells() const const Kokkos::View<const unsigned short*> nodeNbCells() const
{ {
return m_node_nb_cells; return m_node_nb_cells;
} }
const Kokkos::View<const size_t*[2]> nodeCells() const const Kokkos::View<const unsigned int*[2]> nodeCells() const
{ {
return m_node_cells; return m_node_cells;
} }
const Kokkos::View<const size_t*[2]> nodeCellLocalNode() const const Kokkos::View<const unsigned short*[2]> nodeCellLocalNode() const
{ {
return m_node_cell_local_node; return m_node_cell_local_node;
} }
......
...@@ -109,25 +109,35 @@ int main(int argc, char *argv[]) ...@@ -109,25 +109,35 @@ int main(int argc, char *argv[])
{ // class for acoustic solver test { // class for acoustic solver test
Kokkos::Timer timer; Kokkos::Timer timer;
timer.reset(); timer.reset();
Connectivity1D connectivity(number); AcousticSolverTest acoustic_solver(number);
Mesh<Connectivity1D> mesh(connectivity); method_cost_map["AcousticSolverTest"] = timer.seconds();
AcousticSolverWithMesh<Mesh<Connectivity1D>> acoustic_solver(mesh);
method_cost_map["AcousticSolverWithMesh"] = timer.seconds();
} }
{ // class for acoustic solver test { // class for acoustic solver test
Kokkos::Timer timer; Kokkos::Timer timer;
timer.reset(); timer.reset();
AcousticSolverTest acoustic_solver(number); Connectivity1D connectivity(number);
method_cost_map["AcousticSolverTest"] = timer.seconds(); Mesh<Connectivity1D> mesh(connectivity);
AcousticSolverWithMesh<Mesh<Connectivity1D>> acoustic_solver(mesh);
method_cost_map["AcousticSolverWithMesh"] = timer.seconds();
} }
Kokkos::View<TinyVector<2,double>*[2]> test("test", 10); Kokkos::View<TinyVector<2,double>*[2]> test("test", 10);
constexpr size_t N = 3; constexpr size_t N = 3;
std::cout << "sizeof(TinyVector<" << N << ",double>)=" << sizeof(TinyVector<N,double>) << std::endl; std::cout << "sizeof(TinyVector<" << N << ",double>)=" << sizeof(TinyVector<N,double>) << std::endl;
std::cout << "sizeof(double)=" << sizeof(double) << std::endl; std::cout << "sizeof(double)=" << sizeof(double) << std::endl;
std::cout << "sizeof(size_t) = " << sizeof(size_t) << std::endl;
std::cout << "sizeof(int) = " << sizeof(int) << std::endl;
std::cout << "sizeof(unsigned int) = " << sizeof(unsigned int) << std::endl;
std::cout << "sizeof(unsigned short) = " << sizeof(unsigned short) << std::endl;
std::cout << "std::numeric_limits<size_t>::max() = " << std::numeric_limits<size_t>::max() << std::endl;
std::cout << "std::numeric_limits<int>::max() = " << std::numeric_limits<int>::max() << std::endl;
std::cout << "std::numeric_limits<unsigned int>::max() = " << std::numeric_limits<unsigned int>::max() << std::endl;
std::cout << "std::numeric_limits<short>::max() = " << std::numeric_limits<short>::max() << std::endl;
std::cout << "std::numeric_limits<unsigned short>::max() = " << std::numeric_limits<unsigned short>::max() << std::endl;
std::cout << "std::numeric_limits<char>::max() = " << unsigned(std::numeric_limits<char>::max()) << std::endl;
std::cout << "std::numeric_limits<unsigned char>::max() = " << unsigned(std::numeric_limits<unsigned char>::max()) << std::endl;
Kokkos::finalize(); Kokkos::finalize();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment