PeTar
N-body code for collisional gravitational systems
|
Go to the documentation of this file.
2 #include<particle_simulator.hpp>
8 #define PROFILE_PRINT_WIDTH 13
184 time -= PS::GetWtime();
188 tbar -= PS::GetWtime();
192 tbar += PS::GetWtime();
193 time += PS::GetWtime();
197 fout<<
name<<
": "<<
time/divider<<
" "<<
tbar/divider<<std::endl;
201 fout<<std::setw(width)<<
time/divider;
205 fout<<std::setw(width)<<
tbar/divider;
209 return PS::Comm::getMaxValue(
time-
tbar);
213 return PS::Comm::getMinValue(
time-
tbar);
217 fout<<std::setw(width)<<
name;
221 std::string sname(
"Bar_");
223 fout<<std::setw(width)<<sname;
255 fout<<
name<<
": "<<((divider==1)?
n:(
PS::F64)
n/divider)<<std::endl;
259 fout<<std::setw(width)<<((divider==1)?
n:(
PS::F64)
n/divider);
263 fout<<std::setw(width)<<
name;
270 *(TimeProfile*)
this = *(TimeProfile*)
this + _tp;
275 fout<<std::setw(width)<<
"Sample_ptcl"
276 <<std::setw(width)<<
"Domain_deco"
277 <<std::setw(width)<<
"Ex_ptcl "
278 <<std::setw(width)<<
"Set_ptcl_LT"
279 <<std::setw(width)<<
"Set_ptcl_GT"
280 <<std::setw(width)<<
"Make_LT "
281 <<std::setw(width)<<
"Make_GT "
282 <<std::setw(width)<<
"SetRootCell"
283 <<std::setw(width)<<
"Calc_force "
284 <<std::setw(width)<<
"Calc_mom_LT"
285 <<std::setw(width)<<
"Calc_mom_GT"
286 <<std::setw(width)<<
"Make_LET_1 "
287 <<std::setw(width)<<
"Make_LET_2 "
288 <<std::setw(width)<<
"Ex_LET_1 "
289 <<std::setw(width)<<
"Ex_LET_2 "
290 <<std::setw(width)<<
"Write_back ";
294 fout<<std::setw(width)<<collect_sample_particle /n_loop
295 <<std::setw(width)<<decompose_domain /n_loop
296 <<std::setw(width)<<exchange_particle /n_loop
297 <<std::setw(width)<<set_particle_local_tree /n_loop
298 <<std::setw(width)<<set_particle_global_tree/n_loop
299 <<std::setw(width)<<make_local_tree /n_loop
300 <<std::setw(width)<<make_global_tree /n_loop
301 <<std::setw(width)<<set_root_cell /n_loop
302 <<std::setw(width)<<calc_force /n_loop
303 <<std::setw(width)<<calc_moment_local_tree /n_loop
304 <<std::setw(width)<<calc_moment_global_tree /n_loop
305 <<std::setw(width)<<make_LET_1st /n_loop
306 <<std::setw(width)<<make_LET_2nd /n_loop
307 <<std::setw(width)<<exchange_LET_1st /n_loop
308 <<std::setw(width)<<exchange_LET_2nd /n_loop
309 <<std::setw(width)<<write_back /n_loop;
352 fout<<
"Time: "<<time_sys<<std::endl;
356 iptr->
print(fout, n_loop);
364 iptr->
dump(fout, n_loop, width);
469 count[index] = i->second;
488 for(
auto i=
n_cluster.begin(); i!=
n_cluster.end(); ++i) fout<<std::setw(width)<<i->first;
490 for(
auto i=
n_cluster.begin(); i!=
n_cluster.end(); ++i) fout<<std::setw(width)<<i->second/((n_loop==1)?1:(
PS::F64)n_loop);
516 iptr->
dump(fout, n_loop, width);
523 fout<<std::setw(width)<<i->first<<std::setw(width)<<i->second/((n_loop==1)?1:(
PS::F64)n_loop);
void clear()
Definition: profile.hpp:533
Definition: profile.hpp:233
PS::F64 getMax()
Definition: profile.hpp:208
Tprofile tree_nb
Definition: profile.hpp:320
void dump(std::ostream &fout, const PS::S32 divider=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:200
void dump(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH)
Definition: profile.hpp:293
Tprofile output
Definition: profile.hpp:328
NumCounter & operator=(const PS::S64 _n)
Definition: profile.hpp:249
void getherClusterCount(int *n, int *count, const long unsigned int size)
Definition: profile.hpp:464
void addClusterCount(SysCounts &n_count)
Definition: profile.hpp:480
int32_t S32
Definition: pikg_vector.hpp:24
Tprofile search_cluster
Definition: profile.hpp:324
NumCounter cluster_isolated
Definition: profile.hpp:424
void clusterCount(const PS::S32 n, const PS::S32 ntimes=1)
Definition: profile.hpp:455
FDPSProfile & operator+=(const PS::TimeProfile _tp)
Definition: profile.hpp:269
SysCounts()
Definition: profile.hpp:438
NumCounter hard_connected
Definition: profile.hpp:422
void dumpName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:216
void end()
Definition: profile.hpp:191
NumCounter ARC_n_groups_iso
Definition: profile.hpp:429
NumCounter ep_sp_interact
Definition: profile.hpp:433
void barrier()
Definition: profile.hpp:187
void dumpBarrier(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:375
double F64
Definition: pikg_vector.hpp:17
Definition: profile.hpp:313
SysProfile getMin()
Definition: profile.hpp:399
Tprofile hard_isolated
Definition: profile.hpp:317
NumCounter & operator++()
Definition: profile.hpp:239
void copyClusterCount(SysCounts &n_count)
Definition: profile.hpp:474
Tprofile force_correct
Definition: profile.hpp:322
void dump(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:361
Tprofile tree_soft
Definition: profile.hpp:321
int64_t S64
Definition: pikg_vector.hpp:23
NumCounter ep_ep_interact
Definition: profile.hpp:432
void dumpBarrier(std::ostream &fout, const PS::S32 divider=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:204
NumCounter hard_interrupt
Definition: profile.hpp:423
SysProfile()
Definition: profile.hpp:333
Tprofile kick
Definition: profile.hpp:323
Tprofile total
Definition: profile.hpp:315
Tprofile domain
Definition: profile.hpp:326
std::map< PS::S32, PS::S32 > n_cluster
Histogram of number of particles in clusters.
Definition: profile.hpp:436
const PS::S32 n_profile
Definition: profile.hpp:331
const PS::S32 n_counter
Definition: profile.hpp:435
void dumpBarrierName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:220
PS::S64 n
Definition: profile.hpp:234
const char * name
Definition: profile.hpp:179
void print(std::ostream &fout, const PS::S32 divider=1)
Definition: profile.hpp:196
void dumpName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:262
Tprofile create_group
Definition: profile.hpp:325
void dumpHist(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:521
PS::F64 tbar
Definition: profile.hpp:178
Tprofile hard_connected
Definition: profile.hpp:318
void dumpName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:368
void print(std::ostream &fout, const PS::F64 time_sys, const PS::S64 n_loop=1)
Definition: profile.hpp:351
void clear()
Definition: profile.hpp:409
void reset()
Definition: profile.hpp:226
void dump(std::ostream &fout, const PS::S32 divider=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:258
SysProfile getMax()
Definition: profile.hpp:389
Tprofile hard_interrupt
Definition: profile.hpp:319
Definition: profile.hpp:267
Tprofile other
Definition: profile.hpp:330
const char * name
Definition: profile.hpp:235
Tprofile(const char *_name)
Definition: profile.hpp:181
NumCounter cluster_connected
Definition: profile.hpp:425
Definition: profile.hpp:176
NumCounter hard_single
Definition: profile.hpp:420
NumCounter hard_isolated
Definition: profile.hpp:421
Tprofile exchange
Definition: profile.hpp:327
void dumpBarrierName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:382
void clearClusterCount()
Definition: profile.hpp:460
PS::F64 getMin()
Definition: profile.hpp:212
NumCounter & operator+=(const PS::S64 _n)
Definition: profile.hpp:244
void dumpName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:274
void dumpName(std::ostream &fout, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:526
void print(std::ostream &fout, const PS::S32 divider=1) const
Definition: profile.hpp:254
NumCounter ARC_substep_sum
Definition: profile.hpp:426
NumCounter(const char *_name)
Definition: profile.hpp:237
#define PROFILE_PRINT_WIDTH
Definition: profile.hpp:8
PS::F64 time
Definition: profile.hpp:177
NumCounter H4_step_sum
Definition: profile.hpp:430
Tprofile hard_single
Definition: profile.hpp:316
void printHist(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:487
void dump(std::ostream &fout, const PS::S64 n_loop=1, const PS::S32 width=PROFILE_PRINT_WIDTH) const
Definition: profile.hpp:513
Tprofile status
Definition: profile.hpp:329
Definition: profile.hpp:418
NumCounter n_neighbor_zero
Definition: profile.hpp:431
NumCounter ARC_tsyn_step_sum
Definition: profile.hpp:427
NumCounter ARC_n_groups
Definition: profile.hpp:428
void start()
Definition: profile.hpp:183