Skip to content

Commit b183541

Browse files
committed
Modify par
1 parent 53a69dd commit b183541

File tree

5 files changed

+57
-29
lines changed

5 files changed

+57
-29
lines changed

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ opt.o: src/opt.cc src/random.h
2222
par.o: src/par.cc src/random.h
2323
$(CXX) $(CXXFLAGS) -c $< \
2424
-fopt-info-vec-optimized -mavx -ffast-math \
25-
-DPAPI -I/usr/include \
2625
-fopenmp
2726

2827
cache-info: tool/cache-info.cc

src/par.cc

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@
1010
#include <random>
1111
#include "random.h"
1212

13-
#ifdef PAPI
14-
#include <papi.h>
15-
#define NUM_EVENTS 5
16-
#endif
17-
1813
#define BF 16
1914

2015
using namespace std;
@@ -33,6 +28,7 @@ void par_computation(
3328
uint32_t *__restrict__ max,
3429
uint32_t *__restrict__ count
3530
) {
31+
#pragma omp parallel for default(shared) num_threads(24)
3632
for (size_t j = 0; j < num; ++j)
3733
n[j] = (1 << n[j]) - 1;
3834

@@ -46,7 +42,7 @@ void par_computation(
4642

4743
uint32_t dist;
4844
/* loop tiling - main */
49-
#pragma omp parallel for default(shared) num_threads(12) \
45+
#pragma omp parallel for default(shared) num_threads(24) \
5046
private(dist, p_a, p_b, p_x, p_n, p_min, p_max, p_count)
5147
for (size_t j1 = 0; j1 < num - BF; j1 += BF) {
5248
p_a = a + j1;
@@ -160,29 +156,8 @@ double par(default_random_engine *engine, uint32_t num, uint32_t k) {
160156
/* start time measurement */
161157
start = chrono::high_resolution_clock::now();
162158

163-
#ifdef PAPI
164-
int Events[NUM_EVENTS] = { PAPI_L1_DCM, PAPI_L2_DCM, PAPI_L2_DCA, PAPI_L3_TCM, PAPI_L3_TCA };
165-
long_long values[NUM_EVENTS];
166-
167-
/* start counting events */
168-
if (PAPI_start_counters(Events, NUM_EVENTS) != PAPI_OK)
169-
return 0;
170-
#endif
171-
172159
par_computation(num, k, c, d, e, a, b, n, x, min, max, count);
173160

174-
#ifdef PAPI
175-
/* Stop counting events */
176-
if (PAPI_stop_counters(values, NUM_EVENTS) != PAPI_OK)
177-
return 0;
178-
179-
fprintf(stderr, "%lld\t", values[0]);
180-
fprintf(stderr, "%lld\t", values[1]);
181-
fprintf(stderr, "%lld\t", values[2]);
182-
fprintf(stderr, "%lld\t", values[3]);
183-
fprintf(stderr, "%lld\t", values[4]);
184-
#endif
185-
186161
/* end time measurement */
187162
end = chrono::high_resolution_clock::now();
188163

tool/gpu_long_job.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
#$ -q gpu_long.q
3232

3333
for N in `seq 10000000 10000000 270000000`; do
34-
../lg --opt -k 100 -n "$N" > /dev/null
34+
../lg --par -k 100 -n "$N" > /dev/null
3535
done

tool/par/12-threads.sh.e88962

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
10000000 0.227343
2+
20000000 0.430050
3+
30000000 0.703288
4+
40000000 0.844168
5+
50000000 0.796373
6+
60000000 0.956685
7+
70000000 1.115319
8+
80000000 1.274490
9+
90000000 1.471160
10+
100000000 1.592788
11+
110000000 1.754049
12+
120000000 1.910793
13+
130000000 2.070521
14+
140000000 2.231861
15+
150000000 2.390624
16+
160000000 2.618280
17+
170000000 3.886467
18+
180000000 2.867159
19+
190000000 3.029167
20+
200000000 3.187242
21+
210000000 3.434579
22+
220000000 3.508491
23+
230000000 3.668244
24+
240000000 3.828935
25+
250000000 3.985086
26+
260000000 8.358737
27+
270000000 4.315396

tool/par/basic.sh.e88956

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
10000000 1326141 75957 1326141 29804 76575 0.284719
2+
20000000 2275128 143764 2275128 57002 144539 0.479404
3+
30000000 3121309 220643 3121309 83587 221487 0.510368
4+
40000000 4194898 280825 4194898 109727 281795 0.695323
5+
50000000 5244613 346526 5244613 136024 347585 0.848015
6+
60000000 6288881 426312 6288881 164774 427501 1.016199
7+
70000000 7415152 501807 7415152 189065 503035 1.185935
8+
80000000 8400435 565968 8400435 217643 567296 1.353558
9+
90000000 9438294 630883 9438294 244027 632317 1.559557
10+
100000000 10478056 710916 10478056 269789 712368 1.732192
11+
110000000 11531129 770821 11531129 299421 772416 1.904582
12+
120000000 12586319 849874 12586319 322809 851529 2.028358
13+
130000000 13588817 906278 13588817 354866 908100 2.196629
14+
140000000 14683189 970617 14683189 378019 972515 2.422972
15+
150000000 15722720 1054905 15722720 408405 1056889 2.533676
16+
160000000 16793577 1114780 16793577 431090 1116902 2.702400
17+
170000000 17689644 1246286 17689644 494856 1248588 4.039454
18+
180000000 18876440 1248697 18876440 487871 1250989 3.039344
19+
190000000 19904424 1386015 19904424 512916 1388313 3.208552
20+
200000000 20951578 1415939 20951578 544121 1418243 3.458644
21+
210000000 21835117 1498999 21835117 567054 1501431 3.545276
22+
220000000 23051197 1622398 23051197 637542 1624981 3.713092
23+
230000000 24082943 1615628 24082943 624551 1618243 3.976767
24+
240000000 25444818 1739103 25444818 647494 1741962 4.150567
25+
250000000 26215426 1742959 26215426 675063 1745704 4.219374
26+
260000000 27270095 2034602 27270095 838967 2037735 8.673493
27+
270000000 28613478 1902139 28613478 712986 1905195 4.558483

0 commit comments

Comments
 (0)