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