OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
cl_comp_performance_graph.hpp
1 /*
2  * performance_graph.hpp
3  *
4  * Created on: Dec 23, 2016
5  * Author: i-bird
6  */
7 
8 #ifndef SRC_VECTOR_PERFORMANCE_CL_COMP_PERFORMANCE_GRAPH_HPP_
9 #define SRC_VECTOR_PERFORMANCE_CL_COMP_PERFORMANCE_GRAPH_HPP_
10 
11 #include "Plot/GoogleChart.hpp"
12 #include "vector_dist_performance_util.hpp"
13 
15 
27 template<unsigned int dim> void cl_comp_normal_vs_hilbert_force_time(GoogleChart & cg,
28  openfpm::vector<size_t> & cl_n_particles,
29  openfpm::vector<float> & cl_r_cutoff,
30  openfpm::vector<openfpm::vector<double>> & cl_time_hilb_mean,
31  openfpm::vector<openfpm::vector<double>> & cl_time_rand_mean,
32  openfpm::vector<openfpm::vector<double>> & cl_time_hilb_dev,
33  openfpm::vector<openfpm::vector<double>> & cl_time_rand_dev,
34  double & warning_level,
35  double & norm)
36 {
37  std::string file_mean(test_dir);
38  std::string file_var(test_dir);
39  file_mean += std::string("/openfpm_pdata/cl_comp_norm_hilbert_mean_" + std::to_string(dim) + std::string("_ref"));
40  file_var += std::string("/openfpm_pdata/cl_comp_norm_hilbert_dev_" + std::to_string(dim) + std::string("_ref"));
41 
42  std::string file_mean_save = std::string("cl_comp_norm_hilbert_mean_" + std::to_string(dim) + std::to_string("_ref"));
43  std::string file_var_save = std::string("cl_comp_norm_hilbert_dev_" + std::to_string(dim) + std::to_string("_ref"));
44 
45  openfpm::vector<size_t> xp = cl_n_particles;
46 
49 
52 
53  yp_mean.resize(cl_time_rand_mean.size());
54  yp_dev.resize(cl_time_rand_dev.size());
55  for (size_t i = 0 ; i < yp_mean.size() ; i++)
56  {
57  yp_mean.get(i).resize(cl_time_rand_mean.get(i).size());
58  yp_dev.get(i).resize(cl_time_rand_dev.get(i).size());
59 
60  for (size_t j = 0 ; j < yp_mean.get(i).size() ; j++)
61  {
62  yp_mean.get(i).get(j).resize(2);
63  yp_dev.get(i).get(j).resize(2);
64 
65  yp_mean.get(i).get(j).get(0) = cl_time_hilb_mean.get(i).get(j);
66  yp_dev.get(i).get(j).get(0) = cl_time_hilb_dev.get(i).get(j);
67 
68  yp_mean.get(i).get(j).get(1) = cl_time_rand_mean.get(i).get(j);
69  yp_dev.get(i).get(j).get(1) = cl_time_rand_dev.get(i).get(j);
70  }
71  }
72 
73  names.add("Hilbert cell list");
74  names.add("Random cell list");
75 
76  for (size_t i = 0 ; i < cl_r_cutoff.size() ; i++)
77  gnames.add("Cell-list performance, cut-off radius: " + std::to_string(cl_r_cutoff.get(i)));
78 
79  std::string y_string = std::string("Time to calculate forces");
80  std::string x_string = std::string("Number of particles");
81 
82  std::string str("<h1>Cell-list " + std::to_string(dim) + "-D performance test: </h1>");
83  str += "<h2> 1) Time to calculate forces</h2>";
84  cg.addHTML(str);
85 
86  StandardPerformanceGraph(file_mean,
87  file_var,
88  file_mean_save,
89  file_var_save,
90  cg,
91  xp,
92  yp_mean,
93  yp_dev,
94  names,
95  gnames,
96  x_string,
97  y_string,
98  true);
99 }
100 
112 template<unsigned int dim> void cl_comp_normal_vs_hilbert_create_time(GoogleChart & cg,
113  openfpm::vector<size_t> & cl_n_particles,
114  openfpm::vector<float> & cl_r_cutoff,
115  openfpm::vector<openfpm::vector<double>> & cl_time_create_hilb_mean,
116  openfpm::vector<openfpm::vector<double>> & cl_time_create_rand_mean,
117  openfpm::vector<openfpm::vector<double>> & cl_time_create_hilb_dev,
118  openfpm::vector<openfpm::vector<double>> & cl_time_create_rand_dev,
119  double & warning_level,
120  double & norm)
121 {
122  std::string file_mean(test_dir);
123  std::string file_var(test_dir);
124  file_mean += std::string("/openfpm_pdata/cl_comp_create_norm_hilbert_mean_" + std::to_string(dim) + std::string("_ref"));
125  file_var += std::string("/openfpm_pdata/cl_comp_create_norm_hilbert_dev_" + std::to_string(dim) + std::string("_ref"));
126 
127  std::string file_mean_save = std::string("cl_comp_create_norm_hilbert_mean_" + std::to_string(dim) + std::string("_ref"));
128  std::string file_var_save = std::string("cl_comp_create_norm_hilbert_dev_" + std::to_string(dim) + std::string("_ref"));
129 
130  openfpm::vector<size_t> xp = cl_n_particles;
131 
134 
137 
138  yp_mean.resize(cl_time_create_rand_mean.size());
139  yp_dev.resize(cl_time_create_rand_dev.size());
140  for (size_t i = 0 ; i < yp_mean.size() ; i++)
141  {
142  yp_mean.get(i).resize(cl_time_create_rand_mean.get(i).size());
143  yp_dev.get(i).resize(cl_time_create_rand_dev.get(i).size());
144 
145  for (size_t j = 0 ; j < yp_mean.get(i).size() ; j++)
146  {
147  yp_mean.get(i).get(j).resize(2);
148  yp_dev.get(i).get(j).resize(2);
149 
150  yp_mean.get(i).get(j).get(0) = cl_time_create_hilb_mean.get(i).get(j);
151  yp_dev.get(i).get(j).get(0) = cl_time_create_hilb_dev.get(i).get(j);
152 
153  yp_mean.get(i).get(j).get(1) = cl_time_create_rand_mean.get(i).get(j);
154  yp_dev.get(i).get(j).get(1) = cl_time_create_rand_dev.get(i).get(j);
155  }
156  }
157 
158  names.add("Hilbert cell list");
159  names.add("Random cell list");
160 
161  for (size_t i = 0 ; i < cl_r_cutoff.size() ; i++)
162  gnames.add("Cell-list performance, cut-off radius: " + std::to_string(cl_r_cutoff.get(i)));
163 
164  std::string y_string = std::string("Time to create the cell-list");
165  std::string x_string = std::string("Number of particles");
166 
167  std::string str("<h1>Cell-list " + std::to_string(dim) + "-D performance test: </h1>");
168  str += "<h2> 1) Time to create the cell-list</h2>";
169  cg.addHTML(str);
170 
171  StandardPerformanceGraph(file_mean,
172  file_var,
173  file_mean_save,
174  file_var_save,
175  cg,
176  xp,
177  yp_mean,
178  yp_dev,
179  names,
180  gnames,
181  x_string,
182  y_string,
183  true);
184 }
185 
186 
188 
189 
190 
191 #endif /* SRC_VECTOR_PERFORMANCE_CL_COMP_PERFORMANCE_GRAPH_HPP_ */
void addHTML(const std::string &html)
Add HTML text.
size_t size()
Stub size.
Definition: map_vector.hpp:70
Small class to produce graph with Google chart in HTML.