浏览代码

Report version

tags/v1.0
父节点
当前提交
a93414b105
共有 24 个文件被更改,包括 1112 次插入16 次删除
  1. +7
    -0
      Makefile
  2. +1
    -0
      hpc-results/.gitignore
  3. +93
    -0
      hpc-results/main.cpp
  4. +70
    -0
      hpc-results/ntasks1.out.post
  5. +70
    -0
      hpc-results/ntasks10.out.post
  6. +70
    -0
      hpc-results/ntasks15.out.post
  7. +70
    -0
      hpc-results/ntasks2.out.post
  8. +70
    -0
      hpc-results/ntasks20.out.post
  9. +70
    -0
      hpc-results/ntasks4.out.post
  10. +100
    -0
      hpc-results/ntasks5.out.post
  11. +70
    -0
      hpc-results/ntasks8.out.post
  12. +225
    -0
      hpc-results/ntasks_all.csv
  13. 二进制
      hpc-results/ntasks_all.ods
  14. +0
    -0
      hpc-results/ompv3.out
  15. 二进制
      hpc-results/post
  16. 二进制
      report/report.pdf
  17. 二进制
      report/report.synctex.gz
  18. +180
    -1
      report/report.tex
  19. 二进制
      report/source/NACA0015.jpg
  20. 二进制
      report/source/belgium_osm.jpg
  21. 二进制
      report/source/com_Youtube.jpg
  22. 二进制
      report/source/dblp-2010.jpg
  23. 二进制
      report/source/mycielskian13.jpg
  24. +16
    -15
      runall.sh

+ 7
- 0
Makefile 查看文件

@@ -151,6 +151,13 @@ release: $(BUILD_DIR)/$(TARGET)

all: release

hpc-results/post:
$(CXX) $(CFLAGS) -o $@ hpc-results/main.cpp

hpc-clean:
rm hpc-results/post


local_v3: CFLAGS := $(DEB_CFLAGS) -DCODE_VERSION=3
local_v3: TARGET := local_v3
local_v3: $(BUILD_DIR)/$(TARGET)


+ 1
- 0
hpc-results/.gitignore 查看文件

@@ -0,0 +1 @@
/Debug/

+ 93
- 0
hpc-results/main.cpp 查看文件

@@ -0,0 +1,93 @@
/*
* main.cpp
*
* Created on: Dec 4, 2020
* Author: hoo2
*/
#include <sstream>
#include <fstream>
#include <iostream>
#include <algorithm>

#define SIZE 20

std::ifstream file;

/*!
* Calculates and return the median of an array of measurements
* \param t Pointer to measurements
* \param n Size of measurements array
* \return The average
*/
int median (int *t, int n) {
std::sort (t, &t[n]);
return (n % 2) ? t[n/2] : (t[n/2] + t[n/2 -1]) /2;
}

/*
* A small post processing...
*/
int main(int argc, char* argv[]) {
file = std::ifstream(argv[1]);
std::string line, token, exec, mtx, times, dt, units, dyn1, dyn2;
std::string t1, t2, t3, t4;
enum state_en {RUNNING, LOAD, DATA, SUM} state = RUNNING;
int cnt =0, med =0;
int delta_t[SIZE];

while (std::getline (file, line, '\n')) {
std::stringstream ss(line);

switch (state) {
case RUNNING:
ss >> token;
if (token == "running") {
ss >> exec >> t1 >> mtx >> t2 >> times >> t3 >> t4 >> dyn1 >> dyn2;
cnt =0;
state = LOAD;
}
break;

case LOAD: state = DATA; break;

case DATA:
ss >> t1 >> t2 >> t3 >> dt >> units;
if (units == "[usec]") delta_t[cnt] = std::atoi(dt.c_str());
else if (units == "[msec]") delta_t[cnt] = std::atoi(dt.c_str()) * 1000;
else if (units == "[sec]") delta_t[cnt] = std::atoi(dt.c_str()) * 1000000;
if (++cnt == std::atoi(times.c_str())) {
med = median (delta_t, cnt);
cnt =0;
state = SUM;
}
break;

case SUM:
ss >> token;
if (token == "running") {
std::cout << exec << ',' << mtx << ',' << med << ", ," <<
(((dyn1 == "--dynamic") || (dyn2 == "--dynamic")) ? "dyn\n" : " \n");
dyn1 = "";
dyn2 = "";
ss >> exec >> t1 >> mtx >> t2 >> times >> t3 >> t4 >> dyn1 >> dyn2;
cnt =0;
state = LOAD;
}
else if (token == "[Timing]:") {
ss >> t1 >> t2 >> dt >> units;
if (units == "[usec]") med += std::atoi(dt.c_str());
else if (units == "[msec]") med += std::atoi(dt.c_str()) * 1000;
else if (units == "[sec]") med += std::atoi(dt.c_str()) * 1000000;
state = RUNNING;
std::cout << exec << ',' << mtx << ',' << med << ",sum," <<
(((dyn1 == "--dynamic") || (dyn2 == "--dynamic")) ? "dyn\n" : " \n");
dyn1 = "";
dyn2 = "";
}
break;
}

}

return 0;
}

+ 70
- 0
hpc-results/ntasks1.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,26500, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,25537,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,56500, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,22534,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,22500, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,22219,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,68000, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,21223,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,77000, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,40308,sum,
out/hpc_v3,mtx/belgium_osm.mtx,19000, ,
out/hpc_v3,mtx/belgium_osm.mtx,17903,sum,
out/hpc_v4,mtx/belgium_osm.mtx,66500, ,
out/hpc_v4,mtx/belgium_osm.mtx,28259,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,3144000, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,3427034,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,6631000, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,2388503,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,2918500, ,
out/hpc_ompv3,mtx/com-Youtube.mtx,2930703,sum,
out/hpc_ompv4,mtx/com-Youtube.mtx,7077000, ,
out/hpc_ompv4,mtx/com-Youtube.mtx,2846392,sum,
out/hpc_pthv4,mtx/com-Youtube.mtx,7516500, ,
out/hpc_pthv4,mtx/com-Youtube.mtx,2769814,sum,
out/hpc_v3,mtx/com-Youtube.mtx,2799500, ,
out/hpc_v3,mtx/com-Youtube.mtx,2758832,sum,
out/hpc_v4,mtx/com-Youtube.mtx,7050500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2943710,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,89000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,89630,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,185500, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,37130,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,90000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,90062,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,177000, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,37060,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,182500, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,45605,sum,
out/hpc_v3,mtx/dblp-2010.mtx,73000, ,
out/hpc_v3,mtx/dblp-2010.mtx,72072,sum,
out/hpc_v4,mtx/dblp-2010.mtx,183000, ,
out/hpc_v4,mtx/dblp-2010.mtx,36548,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,1155500, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,1204510,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,1663000, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,509509,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,1216500, ,
out/hpc_ompv3,mtx/mycielskian13.mtx,1214048,sum,
out/hpc_ompv4,mtx/mycielskian13.mtx,1867000, ,
out/hpc_ompv4,mtx/mycielskian13.mtx,570042,sum,
out/hpc_pthv4,mtx/mycielskian13.mtx,1710500, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,553878,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1065500, ,
out/hpc_v3,mtx/mycielskian13.mtx,1059500,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1743500, ,
out/hpc_v4,mtx/mycielskian13.mtx,561501,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,165000, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,168385,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,734000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,145433,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,159000, ,
out/hpc_ompv3,mtx/NACA0015.mtx,159164,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,702000, ,
out/hpc_ompv4,mtx/NACA0015.mtx,136257,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,708500, ,
out/hpc_pthv4,mtx/NACA0015.mtx,154003,sum,
out/hpc_v3,mtx/NACA0015.mtx,127000, ,
out/hpc_v3,mtx/NACA0015.mtx,126170,sum,
out/hpc_v4,mtx/NACA0015.mtx,686000, ,
out/hpc_v4,mtx/NACA0015.mtx,135196,sum,

+ 70
- 0
hpc-results/ntasks10.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,6687, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,7026,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,10000, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,5187,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,7521, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,7518,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,10500, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,5545,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,14500, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,10285,sum,
out/hpc_v3,mtx/belgium_osm.mtx,15000, ,
out/hpc_v3,mtx/belgium_osm.mtx,18691,sum,
out/hpc_v4,mtx/belgium_osm.mtx,48500, ,
out/hpc_v4,mtx/belgium_osm.mtx,17178,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,721500, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,720886,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1587000, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1328352,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,405500, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,379584,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,1100000, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,907637,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1562500, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1046997,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2570000, ,
out/hpc_v3,mtx/com-Youtube.mtx,2570242,sum,
out/hpc_v4,mtx/com-Youtube.mtx,6289000, ,
out/hpc_v4,mtx/com-Youtube.mtx,2513721,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,16000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,15187,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,25000, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,7497,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,20000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,20027,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,38000, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,9201,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,41000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,10383,sum,
out/hpc_v3,mtx/dblp-2010.mtx,68000, ,
out/hpc_v3,mtx/dblp-2010.mtx,68041,sum,
out/hpc_v4,mtx/dblp-2010.mtx,162000, ,
out/hpc_v4,mtx/dblp-2010.mtx,34540,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,261500, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,262504,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,231500, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,138019,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,159000, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,159025,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,254500, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,83026,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,253000, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,113054,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1054000, ,
out/hpc_v3,mtx/mycielskian13.mtx,1056000,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1752500, ,
out/hpc_v4,mtx/mycielskian13.mtx,567001,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,22000, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,22268,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,87000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,19632,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,40000, ,
out/hpc_ompv3,mtx/NACA0015.mtx,40084,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,119000, ,
out/hpc_ompv4,mtx/NACA0015.mtx,32126,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,93000, ,
out/hpc_pthv4,mtx/NACA0015.mtx,23567,sum,
out/hpc_v3,mtx/NACA0015.mtx,117000, ,
out/hpc_v3,mtx/NACA0015.mtx,118174,sum,
out/hpc_v4,mtx/NACA0015.mtx,633500, ,
out/hpc_v4,mtx/NACA0015.mtx,125691,sum,

+ 70
- 0
hpc-results/ntasks15.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,5818, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,6550,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,8359, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,4373,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,6548, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,9778,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,8995, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,11833,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,14500, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,11827,sum,
out/hpc_v3,mtx/belgium_osm.mtx,15000, ,
out/hpc_v3,mtx/belgium_osm.mtx,15193,sum,
out/hpc_v4,mtx/belgium_osm.mtx,48000, ,
out/hpc_v4,mtx/belgium_osm.mtx,18182,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,692000, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,692936,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1524500, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1324775,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,382500, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,308712,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,1122000, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,925666,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1457000, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1088557,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2537000, ,
out/hpc_v3,mtx/com-Youtube.mtx,2538293,sum,
out/hpc_v4,mtx/com-Youtube.mtx,6307500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2511731,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,14000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,13210,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,19000, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,5547,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,17000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,16547,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,29000, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,9211,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,35000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,9051,sum,
out/hpc_v3,mtx/dblp-2010.mtx,68000, ,
out/hpc_v3,mtx/dblp-2010.mtx,68042,sum,
out/hpc_v4,mtx/dblp-2010.mtx,163500, ,
out/hpc_v4,mtx/dblp-2010.mtx,33041,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,253000, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,250004,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,198000, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,132043,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,115500, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,116021,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,190000, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,61086,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,210500, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,91430,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1056000, ,
out/hpc_v3,mtx/mycielskian13.mtx,1061000,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1756000, ,
out/hpc_v4,mtx/mycielskian13.mtx,566001,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,20000, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,19836,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,70000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,17198,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,33000, ,
out/hpc_ompv3,mtx/NACA0015.mtx,33138,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,95500, ,
out/hpc_ompv4,mtx/NACA0015.mtx,25132,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,93500, ,
out/hpc_pthv4,mtx/NACA0015.mtx,25158,sum,
out/hpc_v3,mtx/NACA0015.mtx,119500, ,
out/hpc_v3,mtx/NACA0015.mtx,119662,sum,
out/hpc_v4,mtx/NACA0015.mtx,635000, ,
out/hpc_v4,mtx/NACA0015.mtx,130696,sum,

+ 70
- 0
hpc-results/ntasks2.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,17000, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,16859,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,35000, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,15377,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,25000, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,25243,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,62500, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,29470,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,47000, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,23382,sum,
out/hpc_v3,mtx/belgium_osm.mtx,18000, ,
out/hpc_v3,mtx/belgium_osm.mtx,21475,sum,
out/hpc_v4,mtx/belgium_osm.mtx,57000, ,
out/hpc_v4,mtx/belgium_osm.mtx,23247,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,1592500, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,1708838,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,3858000, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1397498,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,2934500, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,2965201,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,7008500, ,
out/hpc_ompv4,mtx/com-Youtube.mtx,2749905,sum,
out/hpc_pthv4,mtx/com-Youtube.mtx,4209000, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1808107,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2705500, ,
out/hpc_v3,mtx/com-Youtube.mtx,2721897,sum,
out/hpc_v4,mtx/com-Youtube.mtx,7174500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2843260,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,52000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,52104,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,105500, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,22082,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,98500, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,95072,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,178000, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,37060,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,97000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,24501,sum,
out/hpc_v3,mtx/dblp-2010.mtx,72000, ,
out/hpc_v3,mtx/dblp-2010.mtx,72045,sum,
out/hpc_v4,mtx/dblp-2010.mtx,177000, ,
out/hpc_v4,mtx/dblp-2010.mtx,37060,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,725500, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,744026,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,903000, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,353023,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,1207500, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,1217553,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,1872500, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,610035,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,977000, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,352002,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1162500, ,
out/hpc_v3,mtx/mycielskian13.mtx,1158502,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1899500, ,
out/hpc_v4,mtx/mycielskian13.mtx,609501,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,131500, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,92768,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,506000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,84790,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,196500, ,
out/hpc_ompv3,mtx/NACA0015.mtx,177187,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,721500, ,
out/hpc_ompv4,mtx/NACA0015.mtx,143306,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,407500, ,
out/hpc_pthv4,mtx/NACA0015.mtx,88733,sum,
out/hpc_v3,mtx/NACA0015.mtx,130000, ,
out/hpc_v3,mtx/NACA0015.mtx,133199,sum,
out/hpc_v4,mtx/NACA0015.mtx,748000, ,
out/hpc_v4,mtx/NACA0015.mtx,143241,sum,

+ 70
- 0
hpc-results/ntasks20.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,6303, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,6767,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,6521, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,3872,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,8999, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,7005,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,6932, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,3931,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,10000, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,8424,sum,
out/hpc_v3,mtx/belgium_osm.mtx,18500, ,
out/hpc_v3,mtx/belgium_osm.mtx,18708,sum,
out/hpc_v4,mtx/belgium_osm.mtx,51000, ,
out/hpc_v4,mtx/belgium_osm.mtx,19188,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,678500, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,675455,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1516500, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1287996,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,301000, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,221202,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,1010000, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,883004,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1369500, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,980566,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2541000, ,
out/hpc_v3,mtx/com-Youtube.mtx,2519239,sum,
out/hpc_v4,mtx/com-Youtube.mtx,6370500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2522198,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,11000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,12245,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,16000, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,5710,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,15500, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,15054,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,21500, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,7761,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,36000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,9370,sum,
out/hpc_v3,mtx/dblp-2010.mtx,68000, ,
out/hpc_v3,mtx/dblp-2010.mtx,68540,sum,
out/hpc_v4,mtx/dblp-2010.mtx,162500, ,
out/hpc_v4,mtx/dblp-2010.mtx,33041,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,171500, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,168505,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,137500, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,95007,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,76000, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,76023,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,128500, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,43031,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,154000, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,89957,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1055000, ,
out/hpc_v3,mtx/mycielskian13.mtx,1055000,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1739000, ,
out/hpc_v4,mtx/mycielskian13.mtx,574000,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,16500, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,16359,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,51000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,13166,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,34500, ,
out/hpc_ompv3,mtx/NACA0015.mtx,32736,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,62500, ,
out/hpc_ompv4,mtx/NACA0015.mtx,23856,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,56000, ,
out/hpc_pthv4,mtx/NACA0015.mtx,25950,sum,
out/hpc_v3,mtx/NACA0015.mtx,128500, ,
out/hpc_v3,mtx/NACA0015.mtx,127175,sum,
out/hpc_v4,mtx/NACA0015.mtx,685000, ,
out/hpc_v4,mtx/NACA0015.mtx,134705,sum,

+ 70
- 0
hpc-results/ntasks4.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,12000, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,12316,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,21000, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,10237,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,19000, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,16641,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,43000, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,15244,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,27500, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,16585,sum,
out/hpc_v3,mtx/belgium_osm.mtx,20000, ,
out/hpc_v3,mtx/belgium_osm.mtx,21397,sum,
out/hpc_v4,mtx/belgium_osm.mtx,65500, ,
out/hpc_v4,mtx/belgium_osm.mtx,27888,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,923000, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,949250,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,2037500, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1507358,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,2943000, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,2938693,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,7141500, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,2788393,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,2706000, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1464570,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2782500, ,
out/hpc_v3,mtx/com-Youtube.mtx,2719852,sum,
out/hpc_v4,mtx/com-Youtube.mtx,7123500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2803272,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,26000, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,27143,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,52500, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,13574,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,91000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,92084,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,177500, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,40064,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,57000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,15933,sum,
out/hpc_v3,mtx/dblp-2010.mtx,73000, ,
out/hpc_v3,mtx/dblp-2010.mtx,72551,sum,
out/hpc_v4,mtx/dblp-2010.mtx,179000, ,
out/hpc_v4,mtx/dblp-2010.mtx,37043,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,547000, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,552507,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,493000, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,257519,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,1239500, ,
out/hpc_ompv3,mtx/mycielskian13.mtx,1239035,sum,
out/hpc_ompv4,mtx/mycielskian13.mtx,1855500, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,607036,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,514000, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,183973,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1158000, ,
out/hpc_v3,mtx/mycielskian13.mtx,1162002,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1943000, ,
out/hpc_v4,mtx/mycielskian13.mtx,624001,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,55000, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,56733,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,243000, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,44164,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,175500, ,
out/hpc_ompv3,mtx/NACA0015.mtx,177173,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,774000, ,
out/hpc_ompv4,mtx/NACA0015.mtx,151281,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,235000, ,
out/hpc_pthv4,mtx/NACA0015.mtx,51471,sum,
out/hpc_v3,mtx/NACA0015.mtx,155500, ,
out/hpc_v3,mtx/NACA0015.mtx,139297,sum,
out/hpc_v4,mtx/NACA0015.mtx,814500, ,
out/hpc_v4,mtx/NACA0015.mtx,163336,sum,

+ 100
- 0
hpc-results/ntasks5.out.post 查看文件

@@ -0,0 +1,100 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,11500, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,14266,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,25500, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,10831,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,16500, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,16296,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,89000, ,dyn
out/hpc_ompv3,mtx/belgium_osm.mtx,131341,sum,dyn
out/hpc_ompv4,mtx/belgium_osm.mtx,25000, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,11637,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,201000, ,dyn
out/hpc_ompv4,mtx/belgium_osm.mtx,145311,sum,dyn
out/hpc_pthv4,mtx/belgium_osm.mtx,34500, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,27363,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,123000, ,dyn
out/hpc_pthv4,mtx/belgium_osm.mtx,96481,sum,dyn
out/hpc_v3,mtx/belgium_osm.mtx,22000, ,
out/hpc_v3,mtx/belgium_osm.mtx,23473,sum,
out/hpc_v4,mtx/belgium_osm.mtx,71500, ,
out/hpc_v4,mtx/belgium_osm.mtx,26935,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,1114500, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,868766,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1783000, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1548890,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,2902000, ,
out/hpc_ompv3,mtx/com-Youtube.mtx,2894245,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,1548500, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,1541156,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,6357500, ,
out/hpc_ompv4,mtx/com-Youtube.mtx,2700337,sum,
out/hpc_ompv4,mtx/com-Youtube.mtx,3643000, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,2779929,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,4525500, ,
out/hpc_pthv4,mtx/com-Youtube.mtx,2541127,sum,
out/hpc_pthv4,mtx/com-Youtube.mtx,2686000, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1271835,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2704500, ,
out/hpc_v3,mtx/com-Youtube.mtx,2724805,sum,
out/hpc_v4,mtx/com-Youtube.mtx,7090500, ,
out/hpc_v4,mtx/com-Youtube.mtx,2749317,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,50500, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,37155,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,44500, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,23616,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,93000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,93090,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,97500, ,dyn
out/hpc_ompv3,mtx/dblp-2010.mtx,98084,sum,dyn
out/hpc_ompv4,mtx/dblp-2010.mtx,185000, ,
out/hpc_ompv4,mtx/dblp-2010.mtx,37086,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,187000, ,dyn
out/hpc_ompv4,mtx/dblp-2010.mtx,42110,sum,dyn
out/hpc_pthv4,mtx/dblp-2010.mtx,96000, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,15731,sum,
out/hpc_pthv4,mtx/dblp-2010.mtx,81500, ,dyn
out/hpc_pthv4,mtx/dblp-2010.mtx,39512,sum,dyn
out/hpc_v3,mtx/dblp-2010.mtx,74000, ,
out/hpc_v3,mtx/dblp-2010.mtx,74090,sum,
out/hpc_v4,mtx/dblp-2010.mtx,183000, ,
out/hpc_v4,mtx/dblp-2010.mtx,38068,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,360500, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,534027,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,379500, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,290512,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,1197000, ,
out/hpc_ompv3,mtx/mycielskian13.mtx,1198045,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,1200000, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,1197548,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,1858000, ,
out/hpc_ompv4,mtx/mycielskian13.mtx,599587,sum,
out/hpc_ompv4,mtx/mycielskian13.mtx,1851500, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,598046,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,684000, ,
out/hpc_pthv4,mtx/mycielskian13.mtx,383448,sum,
out/hpc_pthv4,mtx/mycielskian13.mtx,442500, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,160597,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1140500, ,
out/hpc_v3,mtx/mycielskian13.mtx,1139002,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1876500, ,
out/hpc_v4,mtx/mycielskian13.mtx,604501,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,52500, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,54250,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,259500, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,84789,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,227500, ,
out/hpc_ompv3,mtx/NACA0015.mtx,224189,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,248000, ,dyn
out/hpc_ompv3,mtx/NACA0015.mtx,233677,sum,dyn
out/hpc_ompv4,mtx/NACA0015.mtx,808000, ,
out/hpc_ompv4,mtx/NACA0015.mtx,170856,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,876500, ,dyn
out/hpc_ompv4,mtx/NACA0015.mtx,253854,sum,dyn
out/hpc_pthv4,mtx/NACA0015.mtx,373000, ,
out/hpc_pthv4,mtx/NACA0015.mtx,102168,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,445500, ,dyn
out/hpc_pthv4,mtx/NACA0015.mtx,133809,sum,dyn
out/hpc_v3,mtx/NACA0015.mtx,158500, ,
out/hpc_v3,mtx/NACA0015.mtx,156298,sum,
out/hpc_v4,mtx/NACA0015.mtx,864000, ,
out/hpc_v4,mtx/NACA0015.mtx,182324,sum,

+ 70
- 0
hpc-results/ntasks8.out.post 查看文件

@@ -0,0 +1,70 @@
out/hpc_cilkv3,mtx/belgium_osm.mtx,8485, ,
out/hpc_cilkv3,mtx/belgium_osm.mtx,8729,sum,
out/hpc_cilkv4,mtx/belgium_osm.mtx,11500, ,
out/hpc_cilkv4,mtx/belgium_osm.mtx,6546,sum,
out/hpc_ompv3,mtx/belgium_osm.mtx,11500, ,
out/hpc_ompv3,mtx/belgium_osm.mtx,11100,sum,
out/hpc_ompv4,mtx/belgium_osm.mtx,18500, ,
out/hpc_ompv4,mtx/belgium_osm.mtx,9888,sum,
out/hpc_pthv4,mtx/belgium_osm.mtx,19000, ,
out/hpc_pthv4,mtx/belgium_osm.mtx,13872,sum,
out/hpc_v3,mtx/belgium_osm.mtx,21500, ,
out/hpc_v3,mtx/belgium_osm.mtx,21502,sum,
out/hpc_v4,mtx/belgium_osm.mtx,67000, ,
out/hpc_v4,mtx/belgium_osm.mtx,25411,sum,
out/hpc_cilkv3,mtx/com-Youtube.mtx,768000, ,
out/hpc_cilkv3,mtx/com-Youtube.mtx,767339,sum,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1695500, ,
out/hpc_cilkv4,mtx/com-Youtube.mtx,1437948,sum,
out/hpc_ompv3,mtx/com-Youtube.mtx,704000, ,dyn
out/hpc_ompv3,mtx/com-Youtube.mtx,701135,sum,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,1598000, ,dyn
out/hpc_ompv4,mtx/com-Youtube.mtx,1054208,sum,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1907000, ,dyn
out/hpc_pthv4,mtx/com-Youtube.mtx,1167025,sum,dyn
out/hpc_v3,mtx/com-Youtube.mtx,2736000, ,
out/hpc_v3,mtx/com-Youtube.mtx,2734914,sum,
out/hpc_v4,mtx/com-Youtube.mtx,7123000, ,
out/hpc_v4,mtx/com-Youtube.mtx,2775836,sum,
out/hpc_cilkv3,mtx/dblp-2010.mtx,18500, ,
out/hpc_cilkv3,mtx/dblp-2010.mtx,17669,sum,
out/hpc_cilkv4,mtx/dblp-2010.mtx,29500, ,
out/hpc_cilkv4,mtx/dblp-2010.mtx,8610,sum,
out/hpc_ompv3,mtx/dblp-2010.mtx,32000, ,
out/hpc_ompv3,mtx/dblp-2010.mtx,32061,sum,
out/hpc_ompv4,mtx/dblp-2010.mtx,53500, ,dyn
out/hpc_ompv4,mtx/dblp-2010.mtx,23066,sum,dyn
out/hpc_pthv4,mtx/dblp-2010.mtx,37500, ,
out/hpc_pthv4,mtx/dblp-2010.mtx,10636,sum,
out/hpc_v3,mtx/dblp-2010.mtx,76000, ,
out/hpc_v3,mtx/dblp-2010.mtx,74074,sum,
out/hpc_v4,mtx/dblp-2010.mtx,188000, ,
out/hpc_v4,mtx/dblp-2010.mtx,39076,sum,
out/hpc_cilkv3,mtx/mycielskian13.mtx,395000, ,
out/hpc_cilkv3,mtx/mycielskian13.mtx,396520,sum,
out/hpc_cilkv4,mtx/mycielskian13.mtx,303000, ,
out/hpc_cilkv4,mtx/mycielskian13.mtx,194007,sum,
out/hpc_ompv3,mtx/mycielskian13.mtx,276000, ,dyn
out/hpc_ompv3,mtx/mycielskian13.mtx,278057,sum,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,517000, ,dyn
out/hpc_ompv4,mtx/mycielskian13.mtx,182559,sum,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,303500, ,dyn
out/hpc_pthv4,mtx/mycielskian13.mtx,117786,sum,dyn
out/hpc_v3,mtx/mycielskian13.mtx,1148500, ,
out/hpc_v3,mtx/mycielskian13.mtx,1157001,sum,
out/hpc_v4,mtx/mycielskian13.mtx,1892000, ,
out/hpc_v4,mtx/mycielskian13.mtx,609001,sum,
out/hpc_cilkv3,mtx/NACA0015.mtx,28000, ,
out/hpc_cilkv3,mtx/NACA0015.mtx,29757,sum,
out/hpc_cilkv4,mtx/NACA0015.mtx,123500, ,
out/hpc_cilkv4,mtx/NACA0015.mtx,25157,sum,
out/hpc_ompv3,mtx/NACA0015.mtx,102000, ,
out/hpc_ompv3,mtx/NACA0015.mtx,102619,sum,
out/hpc_ompv4,mtx/NACA0015.mtx,235000, ,
out/hpc_ompv4,mtx/NACA0015.mtx,84688,sum,
out/hpc_pthv4,mtx/NACA0015.mtx,128500, ,
out/hpc_pthv4,mtx/NACA0015.mtx,31076,sum,
out/hpc_v3,mtx/NACA0015.mtx,175500, ,
out/hpc_v3,mtx/NACA0015.mtx,174353,sum,
out/hpc_v4,mtx/NACA0015.mtx,879000, ,
out/hpc_v4,mtx/NACA0015.mtx,189315,sum,

+ 225
- 0
hpc-results/ntasks_all.csv 查看文件

@@ -0,0 +1,225 @@
mtx/belgium_osm.mtx,out/hpc_cilkv3,0,19000
mtx/belgium_osm.mtx,out/hpc_cilkv3,1,26500
mtx/belgium_osm.mtx,out/hpc_cilkv3,2,17000
mtx/belgium_osm.mtx,out/hpc_cilkv3,4,12000
mtx/belgium_osm.mtx,out/hpc_cilkv3,5,11500
mtx/belgium_osm.mtx,out/hpc_cilkv3,8,8485
mtx/belgium_osm.mtx,out/hpc_cilkv3,10,6687
mtx/belgium_osm.mtx,out/hpc_cilkv3,15,5818
mtx/belgium_osm.mtx,out/hpc_cilkv3,20,6303
mtx/belgium_osm.mtx,out/hpc_cilkv4,0,48500
mtx/belgium_osm.mtx,out/hpc_cilkv4,1,56500
mtx/belgium_osm.mtx,out/hpc_cilkv4,2,35000
mtx/belgium_osm.mtx,out/hpc_cilkv4,4,21000
mtx/belgium_osm.mtx,out/hpc_cilkv4,5,25500
mtx/belgium_osm.mtx,out/hpc_cilkv4,8,11500
mtx/belgium_osm.mtx,out/hpc_cilkv4,10,10000
mtx/belgium_osm.mtx,out/hpc_cilkv4,15,8359
mtx/belgium_osm.mtx,out/hpc_cilkv4,20,6521
mtx/belgium_osm.mtx,out/hpc_ompv3,0,18000
mtx/belgium_osm.mtx,out/hpc_ompv3,1,22500
mtx/belgium_osm.mtx,out/hpc_ompv3,2,25000
mtx/belgium_osm.mtx,out/hpc_ompv3,4,19000
mtx/belgium_osm.mtx,out/hpc_ompv3,5,16500
mtx/belgium_osm.mtx,out/hpc_ompv3,8,11500
mtx/belgium_osm.mtx,out/hpc_ompv3,10,7521
mtx/belgium_osm.mtx,out/hpc_ompv3,15,6548
mtx/belgium_osm.mtx,out/hpc_ompv3,20,8999
mtx/belgium_osm.mtx,out/hpc_ompv4,0,48000
mtx/belgium_osm.mtx,out/hpc_ompv4,1,68000
mtx/belgium_osm.mtx,out/hpc_ompv4,2,62500
mtx/belgium_osm.mtx,out/hpc_ompv4,4,43000
mtx/belgium_osm.mtx,out/hpc_ompv4,5,25000
mtx/belgium_osm.mtx,out/hpc_ompv4,8,18500
mtx/belgium_osm.mtx,out/hpc_ompv4,10,10500
mtx/belgium_osm.mtx,out/hpc_ompv4,15,8995
mtx/belgium_osm.mtx,out/hpc_ompv4,20,6932
mtx/belgium_osm.mtx,out/hpc_pthv4,0,51000
mtx/belgium_osm.mtx,out/hpc_pthv4,1,77000
mtx/belgium_osm.mtx,out/hpc_pthv4,2,47000
mtx/belgium_osm.mtx,out/hpc_pthv4,4,27500
mtx/belgium_osm.mtx,out/hpc_pthv4,5,34500
mtx/belgium_osm.mtx,out/hpc_pthv4,8,19000
mtx/belgium_osm.mtx,out/hpc_pthv4,10,14500
mtx/belgium_osm.mtx,out/hpc_pthv4,15,14500
mtx/belgium_osm.mtx,out/hpc_pthv4,20,10000
mtx/com-Youtube.mtx,out/hpc_cilkv3,0,2799500
mtx/com-Youtube.mtx,out/hpc_cilkv3,1,3144000
mtx/com-Youtube.mtx,out/hpc_cilkv3,2,1592500
mtx/com-Youtube.mtx,out/hpc_cilkv3,4,923000
mtx/com-Youtube.mtx,out/hpc_cilkv3,5,1114500
mtx/com-Youtube.mtx,out/hpc_cilkv3,8,768000
mtx/com-Youtube.mtx,out/hpc_cilkv3,10,721500
mtx/com-Youtube.mtx,out/hpc_cilkv3,15,692000
mtx/com-Youtube.mtx,out/hpc_cilkv3,20,678500
mtx/com-Youtube.mtx,out/hpc_cilkv4,0,6289000
mtx/com-Youtube.mtx,out/hpc_cilkv4,1,6631000
mtx/com-Youtube.mtx,out/hpc_cilkv4,2,3858000
mtx/com-Youtube.mtx,out/hpc_cilkv4,4,2037500
mtx/com-Youtube.mtx,out/hpc_cilkv4,5,1783000
mtx/com-Youtube.mtx,out/hpc_cilkv4,8,1695500
mtx/com-Youtube.mtx,out/hpc_cilkv4,10,1587000
mtx/com-Youtube.mtx,out/hpc_cilkv4,15,1524500
mtx/com-Youtube.mtx,out/hpc_cilkv4,20,1516500
mtx/com-Youtube.mtx,out/hpc_ompv3,0,2705500
mtx/com-Youtube.mtx,out/hpc_ompv3,1,2918500
mtx/com-Youtube.mtx,out/hpc_ompv3,2,2934500
mtx/com-Youtube.mtx,out/hpc_ompv3,4,2943000
mtx/com-Youtube.mtx,out/hpc_ompv3,5,1548500
mtx/com-Youtube.mtx,out/hpc_ompv3,8,704000
mtx/com-Youtube.mtx,out/hpc_ompv3,10,405500
mtx/com-Youtube.mtx,out/hpc_ompv3,15,382500
mtx/com-Youtube.mtx,out/hpc_ompv3,20,301000
mtx/com-Youtube.mtx,out/hpc_ompv4,0,6307500
mtx/com-Youtube.mtx,out/hpc_ompv4,1,7077000
mtx/com-Youtube.mtx,out/hpc_ompv4,2,7008500
mtx/com-Youtube.mtx,out/hpc_ompv4,4,7141500
mtx/com-Youtube.mtx,out/hpc_ompv4,5,3643000
mtx/com-Youtube.mtx,out/hpc_ompv4,8,1598000
mtx/com-Youtube.mtx,out/hpc_ompv4,10,1100000
mtx/com-Youtube.mtx,out/hpc_ompv4,15,1122000
mtx/com-Youtube.mtx,out/hpc_ompv4,20,1010000
mtx/com-Youtube.mtx,out/hpc_pthv4,0,6370500
mtx/com-Youtube.mtx,out/hpc_pthv4,1,7516500
mtx/com-Youtube.mtx,out/hpc_pthv4,2,4209000
mtx/com-Youtube.mtx,out/hpc_pthv4,4,2706000
mtx/com-Youtube.mtx,out/hpc_pthv4,5,2686000
mtx/com-Youtube.mtx,out/hpc_pthv4,8,1907000
mtx/com-Youtube.mtx,out/hpc_pthv4,10,1562500
mtx/com-Youtube.mtx,out/hpc_pthv4,15,1457000
mtx/com-Youtube.mtx,out/hpc_pthv4,20,1369500
mtx/dblp-2010.mtx,out/hpc_cilkv3,0,68000
mtx/dblp-2010.mtx,out/hpc_cilkv3,1,89000
mtx/dblp-2010.mtx,out/hpc_cilkv3,2,52000
mtx/dblp-2010.mtx,out/hpc_cilkv3,4,26000
mtx/dblp-2010.mtx,out/hpc_cilkv3,5,50500
mtx/dblp-2010.mtx,out/hpc_cilkv3,8,18500
mtx/dblp-2010.mtx,out/hpc_cilkv3,10,16000
mtx/dblp-2010.mtx,out/hpc_cilkv3,15,14000
mtx/dblp-2010.mtx,out/hpc_cilkv3,20,11000
mtx/dblp-2010.mtx,out/hpc_cilkv4,0,162000
mtx/dblp-2010.mtx,out/hpc_cilkv4,1,185500
mtx/dblp-2010.mtx,out/hpc_cilkv4,2,105500
mtx/dblp-2010.mtx,out/hpc_cilkv4,4,52500
mtx/dblp-2010.mtx,out/hpc_cilkv4,5,44500
mtx/dblp-2010.mtx,out/hpc_cilkv4,8,29500
mtx/dblp-2010.mtx,out/hpc_cilkv4,10,25000
mtx/dblp-2010.mtx,out/hpc_cilkv4,15,19000
mtx/dblp-2010.mtx,out/hpc_cilkv4,20,16000
mtx/dblp-2010.mtx,out/hpc_ompv3,0,68000
mtx/dblp-2010.mtx,out/hpc_ompv3,1,90000
mtx/dblp-2010.mtx,out/hpc_ompv3,2,98500
mtx/dblp-2010.mtx,out/hpc_ompv3,4,91000
mtx/dblp-2010.mtx,out/hpc_ompv3,5,93000
mtx/dblp-2010.mtx,out/hpc_ompv3,8,32000
mtx/dblp-2010.mtx,out/hpc_ompv3,10,20000
mtx/dblp-2010.mtx,out/hpc_ompv3,15,17000
mtx/dblp-2010.mtx,out/hpc_ompv3,20,15500
mtx/dblp-2010.mtx,out/hpc_ompv4,0,163500
mtx/dblp-2010.mtx,out/hpc_ompv4,1,177000
mtx/dblp-2010.mtx,out/hpc_ompv4,2,178000
mtx/dblp-2010.mtx,out/hpc_ompv4,4,177500
mtx/dblp-2010.mtx,out/hpc_ompv4,5,185000
mtx/dblp-2010.mtx,out/hpc_ompv4,8,53500
mtx/dblp-2010.mtx,out/hpc_ompv4,10,38000
mtx/dblp-2010.mtx,out/hpc_ompv4,15,29000
mtx/dblp-2010.mtx,out/hpc_ompv4,20,21500
mtx/dblp-2010.mtx,out/hpc_pthv4,0,162500
mtx/dblp-2010.mtx,out/hpc_pthv4,1,182500
mtx/dblp-2010.mtx,out/hpc_pthv4,2,97000
mtx/dblp-2010.mtx,out/hpc_pthv4,4,57000
mtx/dblp-2010.mtx,out/hpc_pthv4,5,81500
mtx/dblp-2010.mtx,out/hpc_pthv4,8,37500
mtx/dblp-2010.mtx,out/hpc_pthv4,10,41000
mtx/dblp-2010.mtx,out/hpc_pthv4,15,35000
mtx/dblp-2010.mtx,out/hpc_pthv4,20,36000
mtx/mycielskian13.mtx,out/hpc_cilkv3,0,1056000
mtx/mycielskian13.mtx,out/hpc_cilkv3,1,1155500
mtx/mycielskian13.mtx,out/hpc_cilkv3,2,725500
mtx/mycielskian13.mtx,out/hpc_cilkv3,4,547000
mtx/mycielskian13.mtx,out/hpc_cilkv3,5,360500
mtx/mycielskian13.mtx,out/hpc_cilkv3,8,395000
mtx/mycielskian13.mtx,out/hpc_cilkv3,10,261500
mtx/mycielskian13.mtx,out/hpc_cilkv3,15,253000
mtx/mycielskian13.mtx,out/hpc_cilkv3,20,171500
mtx/mycielskian13.mtx,out/hpc_cilkv4,0,1743500
mtx/mycielskian13.mtx,out/hpc_cilkv4,1,1663000
mtx/mycielskian13.mtx,out/hpc_cilkv4,2,903000
mtx/mycielskian13.mtx,out/hpc_cilkv4,4,493000
mtx/mycielskian13.mtx,out/hpc_cilkv4,5,379500
mtx/mycielskian13.mtx,out/hpc_cilkv4,8,303000
mtx/mycielskian13.mtx,out/hpc_cilkv4,10,231500
mtx/mycielskian13.mtx,out/hpc_cilkv4,15,198000
mtx/mycielskian13.mtx,out/hpc_cilkv4,20,137500
mtx/mycielskian13.mtx,out/hpc_ompv3,0,1055000
mtx/mycielskian13.mtx,out/hpc_ompv3,1,1216500
mtx/mycielskian13.mtx,out/hpc_ompv3,2,1207500
mtx/mycielskian13.mtx,out/hpc_ompv3,4,1239500
mtx/mycielskian13.mtx,out/hpc_ompv3,5,1197000
mtx/mycielskian13.mtx,out/hpc_ompv3,8,276000
mtx/mycielskian13.mtx,out/hpc_ompv3,10,159000
mtx/mycielskian13.mtx,out/hpc_ompv3,15,115500
mtx/mycielskian13.mtx,out/hpc_ompv3,20,76000
mtx/mycielskian13.mtx,out/hpc_ompv4,0,1899500
mtx/mycielskian13.mtx,out/hpc_ompv4,1,1867000
mtx/mycielskian13.mtx,out/hpc_ompv4,2,1872500
mtx/mycielskian13.mtx,out/hpc_ompv4,4,1855500
mtx/mycielskian13.mtx,out/hpc_ompv4,5,1851500
mtx/mycielskian13.mtx,out/hpc_ompv4,8,517000
mtx/mycielskian13.mtx,out/hpc_ompv4,10,254500
mtx/mycielskian13.mtx,out/hpc_ompv4,15,190000
mtx/mycielskian13.mtx,out/hpc_ompv4,20,128500
mtx/mycielskian13.mtx,out/hpc_pthv4,0,1943000
mtx/mycielskian13.mtx,out/hpc_pthv4,1,1710500
mtx/mycielskian13.mtx,out/hpc_pthv4,2,977000
mtx/mycielskian13.mtx,out/hpc_pthv4,4,514000
mtx/mycielskian13.mtx,out/hpc_pthv4,5,442500
mtx/mycielskian13.mtx,out/hpc_pthv4,8,303500
mtx/mycielskian13.mtx,out/hpc_pthv4,10,253000
mtx/mycielskian13.mtx,out/hpc_pthv4,15,210500
mtx/mycielskian13.mtx,out/hpc_pthv4,20,154000
mtx/NACA0015.mtx,out/hpc_cilkv3,0,175500
mtx/NACA0015.mtx,out/hpc_cilkv3,1,165000
mtx/NACA0015.mtx,out/hpc_cilkv3,2,131500
mtx/NACA0015.mtx,out/hpc_cilkv3,4,55000
mtx/NACA0015.mtx,out/hpc_cilkv3,5,52500
mtx/NACA0015.mtx,out/hpc_cilkv3,8,28000
mtx/NACA0015.mtx,out/hpc_cilkv3,10,22000
mtx/NACA0015.mtx,out/hpc_cilkv3,15,20000
mtx/NACA0015.mtx,out/hpc_cilkv3,20,16500
mtx/NACA0015.mtx,out/hpc_cilkv4,0,633500
mtx/NACA0015.mtx,out/hpc_cilkv4,1,734000
mtx/NACA0015.mtx,out/hpc_cilkv4,2,506000
mtx/NACA0015.mtx,out/hpc_cilkv4,4,243000
mtx/NACA0015.mtx,out/hpc_cilkv4,5,259500
mtx/NACA0015.mtx,out/hpc_cilkv4,8,123500
mtx/NACA0015.mtx,out/hpc_cilkv4,10,87000
mtx/NACA0015.mtx,out/hpc_cilkv4,15,70000
mtx/NACA0015.mtx,out/hpc_cilkv4,20,51000
mtx/NACA0015.mtx,out/hpc_ompv3,0,117000
mtx/NACA0015.mtx,out/hpc_ompv3,1,159000
mtx/NACA0015.mtx,out/hpc_ompv3,2,196500
mtx/NACA0015.mtx,out/hpc_ompv3,4,175500
mtx/NACA0015.mtx,out/hpc_ompv3,5,227500
mtx/NACA0015.mtx,out/hpc_ompv3,8,102000
mtx/NACA0015.mtx,out/hpc_ompv3,10,40000
mtx/NACA0015.mtx,out/hpc_ompv3,15,33000
mtx/NACA0015.mtx,out/hpc_ompv3,20,34500
mtx/NACA0015.mtx,out/hpc_ompv4,0,635000
mtx/NACA0015.mtx,out/hpc_ompv4,1,702000
mtx/NACA0015.mtx,out/hpc_ompv4,2,721500
mtx/NACA0015.mtx,out/hpc_ompv4,4,380500
mtx/NACA0015.mtx,out/hpc_ompv4,5,408000
mtx/NACA0015.mtx,out/hpc_ompv4,8,235000
mtx/NACA0015.mtx,out/hpc_ompv4,10,119000
mtx/NACA0015.mtx,out/hpc_ompv4,15,95500
mtx/NACA0015.mtx,out/hpc_ompv4,20,62500
mtx/NACA0015.mtx,out/hpc_pthv4,0,685000
mtx/NACA0015.mtx,out/hpc_pthv4,1,708500
mtx/NACA0015.mtx,out/hpc_pthv4,2,407500
mtx/NACA0015.mtx,out/hpc_pthv4,4,235000
mtx/NACA0015.mtx,out/hpc_pthv4,5,373000
mtx/NACA0015.mtx,out/hpc_pthv4,8,128500
mtx/NACA0015.mtx,out/hpc_pthv4,10,93000
mtx/NACA0015.mtx,out/hpc_pthv4,15,93500
mtx/NACA0015.mtx,out/hpc_pthv4,20,56000

二进制
hpc-results/ntasks_all.ods 查看文件


+ 0
- 0
hpc-results/ompv3.out 查看文件


二进制
hpc-results/post 查看文件


二进制
report/report.pdf 查看文件


二进制
report/report.synctex.gz 查看文件


+ 180
- 1
report/report.tex 查看文件

@@ -17,7 +17,7 @@
%\newcommand{\CoAuthorMail}{Co-author'smail}
%\newcommand{\CoAuthorAEM}{Co-author's AEM}

\newcommand{\DocTitle}{Εργασία 1: \eng{Vertexwise triangle counting}}
\newcommand{\DocTitle}{Εργασία 1: \eng{vertexwise triangle counting}}
\newcommand{\Department}{Τμημα ΗΜΜΥ. Τομεάς Ηλεκτρονικής}
\newcommand{\ClassName}{Παράλληλα και Διανεμημένα Συστήματα}

@@ -32,6 +32,11 @@
%\setFancyHeadLERO{\ClassName}{\DocTitle}
%\BottomTitleSpace{8em}

\usepackage{subcaption}
\usepackage{float}
\usepackage{appendix}


% Document
% =============================
\begin{document}
@@ -44,6 +49,180 @@
%\listoftables

\section{Εισαγωγή}
Μια δεξιότητα ενός μηχανικού λογισμικού, που πάντα αποτελεί πρόκληση, είναι ο παράλληλος προγραμματισμός.
Με αυτόν θα ασχοληθούμε στην παρούσα εργασία.
Για το σκοπό αυτό θα υλοποιήσουμε ένα πρόγραμμα που θα εντοπίζει τις ακμές που δημιουργούν τρίγωνα σε ένα μη κατευθυντικό γράφο.
Και αν αυτό είναι το τι, ο πραγματικός μας σκοπός είναι να καταφέρουμε να παραλληλοποιήσουμε την διαδικασία.
Να βρούμε δηλαδή τα κομμάτια που μπορούν να εκτελεστούν ταυτόχρονα και που δεν επηρεάζουν το ένα το άλλο.
\par
Στην παρούσα εργασία υλοποιούμε δύο αλγόριθμους, έναν που αναζητά μέσα στον πίνακα όλους τους δυνατούς συνδυασμούς και έναν που κάνει χρήση λίγης γραμμικής άλγεβρας.
Όπως θα δούμε παρακάτω ο δεύτερος μας δίνει καλύτερες δυνατότητες παραλληλοποίησης.
Για να ελέγξουμε την ορθότητα και να πάρουμε μετρήσεις τα εκτελέσιμα που παράξαμε τα τρέξαμε στη υπολογιστική συστοιχία του ΑΠΘ.

\section{Παραδοτέα}
Τα παραδοτέα της εργασίας αποτελούνται από:
\begin{itemize}
\item Την παρούσα αναφορά.
\item Το \href{https://git.hoo2.net/hoo2/PDS_TriangleCount}{σύνδεσμο με το αποθετήριο} που περιέχει τον κώδικα για την παραγωγή των εκτελέσιμων, της αναφοράς και τις μετρήσεις από τη συστοιχία του πανεπιστημίου.
\end{itemize}

\section {Υλοποίηση}
Πριν ξεκινήσουμε να αναλύουμε τον παραλληλισμό και τις μετρήσεις καλό θα ήταν να αναφερθούμε στην υλοποίηση.
Για την παρούσα εργασία χρησιμοποιήσαμε τη γλώσσα \eng{C++} και βοηθητικά έγινε χρήση του \eng{bash} και της \eng{matlab}.
Στην εργασία γίνεται χρήση αραιών πινάκων με το \eng{format \textbf{CSC}}, καθώς βολεύει πολύ για πολλαπλασιασμούς.

\subsection{\eng{SpMat - SpMatCol - SpMatRow}}
Πρώτα έπρεπε να δημιουργήσουμε τις κατάλληλες αφαιρέσεις ώστε ο κώδικάς μας να είναι πιο ευανάγνωστος και καλύτερα δομημένος.
Για τον πίνακα δημιουργήσαμε το \eng{template \textbf{SpMat}}.
Πρόκειται για μια δομή που περιέχει εργαλεία για ανάγνωση-εγγραφή στοιχείων, γραμμών, στηλών κτλ, δίνοντάς μας την ψευδαίσθηση ότι κινούμαστε σε πλήρη πίνακα.
Αντίθετα όμως εσωτερικά γίνεται εκτενής χρήση του \eng{format CSC}.
Το \eng{template} μας δίνει τη δυνατότητα επιλογής βελτιστοποίησης, όταν ο πίνακας είναι συμμετρικός, κάτι που συμβαίνει και στην περίπτωσή μας, ώστε όταν ζητάμε να προσπελάσουμε μια γραμμή, στην ουσία να προσπελνούμε την αντίστοιχη συμμετρική στήλη, καθώς αυτό σε ένα πίνακα \eng{CSC} είναι βελτιστοποιημένο.
\par
Οι δομές \eng{\textbf{SpMatCol}} και \eng{\textbf{SpMatRow}} αποτελούν κάτι που στην \eng{C++} ονομάζουμε \eng{views}\footnote{όπως πχ το: \href{https://en.cppreference.com/w/cpp/header/string_view}{\eng{string view}}} και αποτελούν \eng{non-owning objects} που δείχνουν στον πίνακα \eng{SpMat}.
Επίσης ταυτόχρονα αποτελούν ένα είδος \eng{iterator} που μας επιτρέπει να συμπεριφερόμαστε στη στήλη(ή στη γραμμή) σαν να ήταν \eng{range}.
Αντί όμως να χρησιμοποιούμε για δείκτες \eng{pointers}, χρησιμοποιούμε ακεραίους, καθώς έτσι μπορούμε να αναφερόμαστε στην αντίστοιχη θέση ενός άλλου πίνακα πολύ εύκολα.
Έτσι μπορούμε για παράδειγμα να γράψουμε:
\setEnglish
\begin{verbatim}
for (int i=0 ; i<A.size() ; ++i)
for (auto j = A.getRow(i); j.index() != j.end() ; ++j)
C(i, j.index()) = A.getRow(i)*A.getCol(j.index());
\end{verbatim}
\setGreek
και να πάρουμε στον \eng{\textbf{SpMat C}} το $A\odot (A \cdot A)$ και μάλιστα αφού ο Α είναι συμμετρικός ο πολλαπλασιασμός να γίνει με \eng{CSC} στήλες μόνο.
Στην υλοποίησή μας εδώ κάνουμε μια ακόμα βελτιστοποίηση .

\section{Βελτιστοποίηση για το συνολικό αριθμό τριγώνων}
Η υλοποίηση του 2ου αλγόριθμου\eng{(V4)} βασίζεται στις ιδιότητες των συμμετρικών πινάκων και δημιουργεί ένα διάνυσμα $\vec{c_3}$ του οποίου το κάθε στοιχείο είναι ίσο με τον αριθμό των τριγώνων στους οποίους συμμετέχει ο κάθε κόμβος.
Το διάνυσμα δίνεται από την σχέση $\vec{c_3} = \dfrac{1}{2} A \odot (A \cdot A)\cdot \vec{1}$.
Γνωρίζοντας όμως ότι ο πίνακας γειτονίασης Α είναι συμμετρικός, κάποιος μπαίνει στη σκέψη ότι όλη η πληροφορία για τον αριθμό τριγώνων θα μπορούσε να βρίσκεται στο μισό του πίνακα.
Πράγματι, όπως αποδεικνύεται και στην παράγραφο \ref{proof}, για τον κάτω τριγωνικό ενός συμμετρικού γράφου $L=(l_{ij}) \neq 0 \quad \forall i > j$ έχουμε $\vec{c_1} = \sum_{j=0}^{N-1} \sum_{k=0}^{N-1} l_{ij} \cdot l_{ki} \cdot l_{kj} $, όπου το $\vec{c_1}$ είναι ένα διάνυσμα που σε κάθε θέση έχει τον αριθμό των \textit{μή διατεταγμένων τριγώνων} του κάθε κόμβου.
\par
Αυτό μας δίνει την δυνατότητα να παρακάμψουμε τη δημιουργία του συμμετρικού πίνακα και να δουλέψουμε με τον κάτω τριγωνικό, όπως ακριβώς μας έρχεται από το \eng{MatrixMarket format}.
Αν και αυτό μπορεί να εφαρμοστεί στον αλγόριθμο της έκδοσης \eng{V3}, αυτό δεν μπορεί να γίνει στην έκδοση \eng{V4}, στην οποία πρέπει να κάνουμε ολόκληρο τον πολλαπλασιασμό για το διάνυσμα $\vec{c_3}$.
Αν όμως επιθυμούσαμε μόνο το συνολικό αριθμό τριγώνων τότε θα μπορούσαμε και εδώ να κάνουμε χρήση της βελτιστοποίησης.
Τα αποτελέσματα αυτά είναι σημειωμένα στον πίνακα \ref{ar:timing} ως \eng{\textit{sum}}.

\section{Παραλληλισμός}
Η στρατηγική μας για τον παραλληλισμό, τόσο για την έκδοση \eng{V3}, όσο και για την \eng{V4}, αρχικά ήταν να χωρίσουμε όλες τις πράξεις που μπορούν να γίνουν ταυτόχρονα.
Αυτό οδηγεί σε πολύ μεγάλο αριθμό πιθανών ταυτόχρονων νημάτων τα οποία:
\begin{itemize}
\item Στην περίπτωση του \eng{V3}: Για κάθε νήμα, αφού έχουμε σε Ο(1) τις δύο πρώτες ακμές του κάθε τριγώνου, κάνουμε αναζήτηση την τρίτη ακμή, πίσω στην στήλη αναφοράς.
\item Στην περίπτωση του \eng{V4}: Για κάθε νήμα, αφού έχουμε σε O(1) τη κάθε μή μηδενική θέση του πίνακα, υπολογίζουμε το εσωτερικό γινόμενο της αντίστοιχης γραμμής και στήλης.
\end{itemize}
Αυτή η προσέγγιση δυστυχώς έχει ένα μεγάλο μειονέκτημα, κάτι που επιβεβαιώσαμε και πειραματικά \footnote{Χρησιμοποιήσαμε τα \eng{valgrind} και \eng{gprof}}.
Κάθε χρονική στιγμή πολλά νήματα προσπαθούν να αναγνώσουν από τη μνήμη, μία ένα αντικείμενο από τη στήλη αναφοράς και μία από τη στήλη κάποιας άλλης ακμής.
Επίσης προσπαθούν να γράψουν στην θέση του διανύσματος εξόδου στη θέση που αντιστοιχεί στη στήλη αναφοράς.
Αυτό εκτός από το μεγάλο \eng{race}, αυξάνει δραματικά τις αποτυχίες της \eng{cache}, με αποτέλεσμα να χάνεται οποιαδήποτε επιτάχυνση μπορούσαμε να αποκτήσουμε.
\par
Για να υπερκεράσουμε αυτό το πρόβλημα αποφασίσαμε να \textbf{“δώσουμε” σε κάθε νήμα μία και μόνο στήλη}.
Αυτό μειώνει τον αριθμό των νημάτων πάρα πολύ και σχεδόν εξαλείφει τα κομμάτια που πρέπει να προστατευτούν για \eng{race}.
Σε αυτή την προσέγγιση το κάθε νήμα εκτελεί ότι περιγράψαμε παραπάνω, μόνο που τώρα το εκτελεί \textit{για κάθε μη μηδενικό αντικείμενο της κάθε στήλης}.
Με αυτό τον τρόπο εκμεταλλευόμαστε την \eng{cache} του κάθε πυρήνα και τα άλματα στη μνήμη γίνονται από μια(ίδια στήλη ανά πυρήνα), σε μια διαφορετική κάθε φορά.
Το μειονέκτημα σε αυτή την περίπτωση προκύπτει από τη σειρά με την οποία δημιουργούνται τα νήματα.
Σε ένα πίνακα που τα μη μηδενικά στοιχεία είναι ομοιόμορφα κατανεμημένα τα νήματα χρειάζονται περίπου τον ίδιο χρόνο για να εκτελεστούν.
Αν όμως κάποιες στήλες είναι πολύ \textit{“βαρύτερες”} από κάποιες άλλες τότε τα νήματα σε αυτές καθυστερούν περισσότερο και μαζί τους καθυστερούν όλη τη διαδικασία.
\par
Σε αυτό το σημείο έρχονται να βοηθήσουν τα εργαλεία διαχείρισης του χρονοπρογραμματισμού(\eng{scheduling}) των νημάτων.
Στην περίπτωση της \eng{cilk} δεν έχουμε κάποια πρόσβαση.
Από την άλλη όμως η \eng{cilk} έχει ένα αρκετά ευέλικτο μοντέλο που στηρίζεται στο \eng{work stealing}\footnote{\eng{\url{https://en.wikipedia.org/wiki/Work_stealing}}} με αποτέλεσμα να διαχειρίζεται αρκετά ομαλά τις ανομοιομορφίες.
\par
Στην \eng{openMP} από την άλλη έχουμε τη δυνατότητα να ελέγξουμε το \eng{scheduling}, κάτι που για την υλοποίησή μας, μπορεί να γίνει με την παράμετρο “\eng{-{}-dynamic}” από τη γραμμή εντολών.
Έτσι για τους πίνακες που είναι αρκετά ανομοιόμορφοι μπορούμε να επιλέξουμε δυναμικό, ενώ για τους ποιο ομοιόμορφους στατικό.
Με το δυναμικό το αποτέλεσμα είναι τα νήματα που εκτελούνται κάθε χρονική στιγμή να έρχονται από “τυχαίες” στήλες του πίνακα.
Αυτή η τυχαιότητα έχει ως αποτέλεσμα να εξαλείφει τις ανομοιομορφίες επιβαρύνοντας λιγάκι την \eng{cache}.
Συνολικά όμως σε ένα ανομοιόμορφο πίνακα αξίζει τον κόπο.
Για παράδειγμα στον πίνακα \eng{com\_Youtube} στην έκδοση \eng{V4}, για 8 πυρήνες με στατικό \eng{scheduling} είχαμε 2780 \eng{msec} ενώ με δυναμικό 1598 \eng{msec}.
\par
Τέλος στην περίπτωση των \eng{pthreads}, δεν έχουμε κανένα αυτοματισμό έτοιμο.
Παρόλα αυτά προσπαθήσαμε να κάνουμε κάτι αντίστοιχο της υλοποίησης του \eng{openMP} για το \eng{static} και \eng{dynamic scheduling}.
Αντί να προσπελάσουμε τον πίνακα ανά στήλη με τη σειρά, τον προσπελνάμε με βάση τις τιμές μια ακολουθίας.
Όταν θέλουμε \eng{static scheduling} την ακολουθία αυτή τη έχουμε σε αύξουσα σειρά, όταν όμως θέλουμε “\eng{dynamic}”, τότε την ανακατεύουμε με τυχαίο τρόπο.
Έτσι πάλι έχουμε το κέρδος της εξάλειψης της ανομοιομορφίας όταν αυτό είναι απαραίτητο.
\par
Παρακάτω παραθέτουμε ένα δείγμα από τις μετρήσεις που έγιναν στη συστοιχία.
Σε αυτές η πρώτη μέτρηση (0 \eng{cores}) αφορά τη σειριακή υλοποίηση και η δεύτερη (1 \eng{core}) ένα και μόνο νήμα.
Από τα γραφήματα μπορούμε να δούμε και την αύξηση του χρόνου στο ένα νήμα, καθώς και την αργή πτώση των χρόνων στα λίγα νήματα.
Αυτά οφείλονται στον έξτρα φόρτο που προσθέτει στο πρόγραμμα μας η διαχείριση των νημάτων.
\par
%Οι μετρήσεις με το αλγόριθμο της έκδοσης \eng{(V3)} και \eng{(V4)} συνοψίζονται:\\
\setEnglish
\begin{tabular}{rrrrrr} \label{ar:timing}
Algo/Matrix & belgium\_osm & com\_Youtube & dblp-2010 & mycielskian13 & NACA0015 \\
Serial v3 & 19.5 [ms]& 2705.0 [ms] & 68.0 [ms] & 1056.0 [ms] & 175.5 [ms] \\
OpenMP v3 (x8) & 11.5 [ms]& 704.0 [ms] & 32.0 [ms] & 276.0 [ms] & 102.0 [ms] \\
OpenMP v3 (x20) & 8.9 [ms]& 301.0 [ms] & 15.5 [ms] & 76.0 [ms] & 34.5 [ms] \\
Cilk v3 (x8) & 8.5 [ms]& 768.0 [ms] & 18.5 [ms] & 395.0 [ms] & 28.0 [ms] \\
Cilk v3 (x20) & 6.3 [ms]& 678.5 [ms] & 11.0 [ms] & 171.5 [ms] & 16.5 [ms] \\
------------ & ------------ & ------------ &------------& ------------ &------------ \\
Serial v4 & 48.5 [ms] & 6289 [ms] & 162.0 [ms] & 1743 [ms] & 633.5 [ms] \\
OpenMP v4 (x8) & 18.5 [ms] & 1598 [ms] & 53.5 [ms] & 517.0 [ms] & 235.0 [ms] \\
OpenMP v4 (x20) & 6932 [us] & 1010 [ms] & 21.5 [ms] & 128.5 [ms] & 62.5 [ms] \\
Cilk v4 (x8) & 11.5 [ms] & 1695 [ms] & 29.5 [ms] & 303.0 [ms] & 123.5 [ms] \\
Cilk v4 (x20) & 6521 [us] & 1516 [ms] & 16.0 [ms] & 137.5 [ms] & 51.0 [ms] \\
pthreads v4 (x8) & 19.0 [ms] & 1907 [ms] & 37.5 [ms] & 303.5 [ms] & 128.5 [ms] \\
pthreads v4 (x20) & 10.0 [ms] & 1369 [ms] & 36.0 [ms] & 154.0 [ms] & 56.0 [ms] \\
Serial v4 (sum) & 28.3 [ms] & 2943 [ms] & 36.5 [ms] & 561.5 [ms] & 135.2 [ms] \\
OpenMP v4 (sum) & 3931 [us] & 883 [ms] & 7761 [us] & 43.0 [ms] & 23.9 [ms] \\
Cilk v4 (sum) & 3872 [us] & 1288 [ms] & 5710 [us] & 95.0 [ms] & 13.2 [ms] \\
pthreads v4 (sum) & 8424 [us] & 980.6 [ms] & 9370 [us] & 89.9 [ms] & 25.9 [ms] \\
\end{tabular}
\setGreek

\begin{figure}[h!]
\begin{subfigure}[h]{0.52\textwidth}
\includegraphics[width=\textwidth]{source/belgium_osm.jpg}
\caption{Πίνακας \eng{belgium\_osm}}
\label{fig:belgium_osm}
\end{subfigure}
\begin{subfigure}[h]{0.52\textwidth}
\includegraphics[width=\textwidth]{source/com_Youtube.jpg}
\caption{Πίνακας \eng{com\_Youtube}}
\label{fig:com_Youtube}
\end{subfigure}
\begin{subfigure}[h]{0.52\textwidth}
\includegraphics[width=\textwidth]{source/dblp-2010.jpg}
\caption{Πίνακας \eng{dblp-2010}}
\label{fig:dblp-2010}
\end{subfigure}
\begin{subfigure}[h]{0.52\textwidth}
\includegraphics[width=\textwidth]{source/mycielskian13.jpg}
\caption{Πίνακας \eng{mycielskian13}}
\label{fig:mycielskian13}
\end{subfigure}
\begin{subfigure}[h]{0.52\textwidth}
\includegraphics[width=\textwidth]{source/NACA0015.jpg}
\caption{Πίνακας \eng{NACA0015}}
\label{fig:NACA0015}
\end{subfigure}
\end{figure}


\appendix
\section{Παράρτημα}
\subsection{Μέτρηση τριγώνων με κάτω τριγωνικό πίνακα} \label{proof}
Έστω \eng{\textbf{L}} ο κάτω τριγωνικός πίνακας ενός συμμετρικού γράφου \eng{\textbf{G}}, όπου $L=(l_{ij}) \neq 0 \quad \forall i > j$.
Τότε:

\begin{equation}\label{eq:Lproduct}
(L^T \cdot L)_{(i,j)} = \sum_{k=0}^{N-1}l_{ik}^T \cdot l_{kj} = \sum_{k=0}^{N-1}l_{ki} \cdot l_{kj} \quad \forall k>i, k>j
\end{equation}
Έτσι από την \eqref{eq:Lproduct} προκύπτει:
\begin{equation}
(L^T \cdot L)_{(i,j)} = \sum_{k=0}^{N-1}l_{ki} \cdot l_{kj} \Rightarrow \
(L \odot (L^T \cdot L))_{(i,j)} = l_{ij}\cdot \sum_{k=0}^{N-1} l_{ki} \cdot l_{kj} = \sum_{k=0}^{N-1} l_{ij}\cdot l_{ki} \cdot l_{kj}
\end{equation}
\begin{equation} \label{eq:Cmat}
\Rightarrow C_{(i,j)} = \sum_{k=0}^{N-1} l_{ij}\cdot l_{ki} \cdot l_{kj} \quad \forall k>i>j
\end{equation}
Όπου φαίνεται πως ο \eng{\textbf{C}} είναι ένας κάτω τριγωνικός πίνακας με μη μηδενικά στοιχεία μόνο στις θέσεις \eng{(i,j)} για τις οποίες υπάρχουν στον \eng{\textbf{G}} τα τρίγωνα \eng{(i,j,k)} για κάθε \eng{i,j,k} τ.ω: $k>i>j$.
Δηλαδή \textbf{μόνο μία φορά}.
Και τελικά:
\begin{equation} \label{eq:Tcount}
\vec{c_1} = (L \odot (L^T \cdot L)) \cdot \vec{1} \Rightarrow \vec{c_1}_{(i)} = \sum_{j=0}^{N-1} \sum_{k=0}^{N-1} l_{ij} \cdot l_{ki} \cdot l_{kj} \quad \forall k>i>j
\end{equation}
Απ' όπου φαίνεται πως το $\vec{c_1}$ είναι διάνυσμα που στη κάθε γραμμή έχει το άθροισμα των τριγώνων μετρημένο μόνο σε μία ακμή(την $l_{ix}, \forall x>i$ του αρχικού γράφου), όχι και στις τρεις.
Το άθροισμα αυτού του διανύσματος, προφανώς, ισοδυναμεί με το συνολικό αριθμό των \textit{\textbf{μη διατεταγμένων τριγώνων}} του γράφου.

% References
% =============================


二进制
report/source/NACA0015.jpg 查看文件

之前 之后
宽度: 1034  |  高度: 593  |  大小: 38 KiB

二进制
report/source/belgium_osm.jpg 查看文件

之前 之后
宽度: 1034  |  高度: 593  |  大小: 38 KiB

二进制
report/source/com_Youtube.jpg 查看文件

之前 之后
宽度: 1034  |  高度: 593  |  大小: 38 KiB

二进制
report/source/dblp-2010.jpg 查看文件

之前 之后
宽度: 1034  |  高度: 593  |  大小: 38 KiB

二进制
report/source/mycielskian13.jpg 查看文件

之前 之后
宽度: 1034  |  高度: 593  |  大小: 38 KiB

+ 16
- 15
runall.sh 查看文件

@@ -2,7 +2,7 @@

if [[ $# -lt 2 ]]; then
echo "Error: You must pass the matrix files and the number of iterations"
echo "example $ runnall.sh mtx/s12.mtx 5"
echo "example $ runnall.sh mtx/s12.mtx 5"
exit 1;
fi

@@ -11,21 +11,22 @@ dynamics=("out/hpc_ompv3" "out/hpc_ompv4" "out/hpc_pthv4")
for ex in out/*; do
echo "-------------------------------------------"
echo "executable: $ex"
for file in "$@"; do
if [[ $file == ${@: -1} ]];then
continue
fi
for file in "$@"; do
if [[ $file == ${@: -1} ]];then
continue
fi
echo "running $ex -i $file -r ${@: -1} --timing -o /dev/null"
eval $ex -i $file -r ${@: -1} --timing -o /dev/null
eval $ex -i $file -r ${@: -1} --timing -o /dev/null
echo "running $ex -i $file -r ${@: -1} --timing --print_count"
eval $ex -i $file -r ${@: -1} --timing --print_count
if [[ $ex == ${dynamics[0]} || $ex == ${dynamics[1]} || $ex == ${dynamics[2]} ]]; then
echo "running $ex -i $file -r ${@: -1} --timing -o /dev/null --dynamic"
eval $ex -i $file -r ${@: -1} --timing -o /dev/null --dynamic
echo "running $ex -i $file -r ${@: -1} --timing --print_count --dynamic"
eval $ex -i $file -r ${@: -1} --timing --print_count --dynamic
fi
done
eval $ex -i $file -r ${@: -1} --timing --print_count
if [[ $ex == ${dynamics[0]} || $ex == ${dynamics[1]} || $ex == ${dynamics[2]} ]]; then
echo "running $ex -i $file -r ${@: -1} --timing -o /dev/null --dynamic"
eval $ex -i $file -r ${@: -1} --timing -o /dev/null --dynamic
echo "running $ex -i $file -r ${@: -1} --timing --print_count --dynamic"
eval $ex -i $file -r ${@: -1} --timing --print_count --dynamic
fi
done
done

exit 0;

正在加载...
取消
保存