Cosan  1.0
Data Analytics Library
Paralleltest.cpp
Go to the documentation of this file.
1 //gcc -I/Users/xinyuzhang/Desktop/Spring2021/c++pattern/project/cosan /Users/xinyuzhang/Desktop/Spring2021/c++pattern/project/cosan/test/Paralleltest.cpp
2 #include <iostream>
3 #include <vector>
4 #include <cosan/selection/kfoldparallel.h>
6 #include <cosan/selection/randomkfoldparallel.h>
8 #include <chrono>
9 #include <algorithm>
10 int main(){
11  // std::chrono::time_point<std::chrono::system_clock> st,ed;
12  // std::chrono::duration<double> tmp,tmp1;
13 
14  // gsl::index nrows = 100000;
15  // gsl::index foldnum = 50000;
16  // st = std::chrono::system_clock::now();
17  // Cosan::KFoldParallel(nrows,foldnum);
18  // ed = std::chrono::system_clock::now();
19  // tmp = std::chrono::duration_cast<std::chrono::duration<double>>(ed-st);
20 
21  // st =std::chrono::system_clock::now();
22  // Cosan::KFold(nrows,foldnum);
23  // ed = std::chrono::system_clock::now();
24 
25  // tmp1 = std::chrono::duration_cast<std::chrono::duration<double>>(ed-st);
26  // std::cout<<tmp.count()<<" "<<tmp1.count()<<std::endl;
27  // return 0;
28  // // run comparison: parallel 26.5309s, without parallel: 35.0404s
29 
30  // std::chrono::time_point<std::chrono::system_clock> st,ed;
31  // std::chrono::duration<double> tmp,tmp1;
32 
33  // gsl::index nrows = 100000;
34  // gsl::index foldnum = 50000;
35  // st = std::chrono::system_clock::now();
36  // Cosan::RandomKFoldParallel(nrows,foldnum);
37  // ed = std::chrono::system_clock::now();
38  // tmp = std::chrono::duration_cast<std::chrono::duration<double>>(ed-st);
39 
40  // st =std::chrono::system_clock::now();
41  // Cosan::RandomKFold(nrows,foldnum);
42  // ed = std::chrono::system_clock::now();
43 
44  // tmp1 = std::chrono::duration_cast<std::chrono::duration<double>>(ed-st);
45  // std::cout<<tmp.count()<<" "<<tmp1.count()<<std::endl;
46 
47  // run comparison: parallel 30.0762s, without parallel: 106.003s
48 
49  auto a = Cosan::RandomKFoldParallel(11).GetSplit();
50 
51  for (auto & each:a){
52  fmt::print("Train Index: ");
53  for (auto& each_test :std::get<0>(each)){
54  std::cout<<each_test;
55  }
56  std::cout<<std::endl;
57  fmt::print("Test Index: ");
58  for (auto& each_test :std::get<1>(each)){
59  std::cout<<each_test;
60  }
61  }
62  std::cout<<std::endl;
63  auto a = Cosan::RandomKFold(11).GetSplit();
64 
65  for (auto & each:a){
66  fmt::print("Train Index: ");
67  for (auto& each_test :std::get<0>(each)){
68  std::cout<<each_test;
69  }
70  std::cout<<std::endl;
71  fmt::print("Test Index: ");
72  for (auto& each_test :std::get<1>(each)){
73  std::cout<<each_test;
74  }
75  }
76  std::cout<<std::endl;
77  return 0;
78 }
main
int main()
Definition: Paralleltest.cpp:10
Cosan::RandomKFold
Definition: randomkfold.h:11
Cosan::RandomKFoldParallel
Definition: randomkfold.h:43
Cosan::RandomKFoldParallel::GetSplit
std::vector< std::tuple< std::vector< gsl::index >, std::vector< gsl::index > > > GetSplit() &
Definition: randomkfold.h:73
randomkfold.h
Cosan::RandomKFold::GetSplit
std::vector< std::tuple< std::vector< gsl::index >, std::vector< gsl::index > > > GetSplit()
Definition: randomkfold.h:36
kfold.h