powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Особенности многопоточности виндовса и линукса, AMD и Intel
25 сообщений из 116, страница 4 из 5
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800596
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смержил. Но тестить буду вечером.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800599
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПочему такой долгий старт? Между стартом первого и последнего потока - почти полторы секунды.
Время не смотри, я тебе показал как id потока выглядит.
Это 7 потоков в одноядерной виртуалке в под отладчиком MSVC.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800606
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто когда я разбираюсь с перформансом - смотрю на диаграмму событий во времени и пытаюсь понять
что пошло не так. И где есть бутылочное горло.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800728
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил расчет строками на акторах. Там всего 512 сообщений запускается, у меня стало быстрее на 0.1 сек. Затести card-raytracer-cpp-actor3.exe
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800730
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Классно. А можно регулировать размер порции данных для актора? К примеру я захочу по 2 строки толкать?
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800738
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА можно регулировать размер порции данных для актора? К примеру я захочу по 2 строки толкать?
Можешь, мой исходник бери и правь как тебе захочется. Там все просто и понятно.

Но я не вижу смысла укрупнять: 512 строк за 10 сек это 19.5 мс на строку, это очень большой кусок.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800744
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил в линуксе на моем i3-2310M
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
ubuntu@ubuntu:~/cr/cpp-mt$ ./run.sh
#!/bin/bash -v

time ./card-raytracer-cpp-mt.exe 1.ppm
compile Apr 12 2019 16:16:32
     0: test 4 threads to file 1.ppm
     0: start thread#8342 (lines 511...384)
     0: start thread#8343 (lines 383...256)
     0: start thread#8344 (lines 255...128)
     4: start thread#8345 (lines 127...0)
  4628: thread#8342 (lines 511...384) finished
  9380: thread#8343 (lines 383...256) finished
  9740: thread#8345 (lines 127...0) finished
 12957: thread#8344 (lines 255...128) finished
 12980: test end


real	0m12.984s
user	0m33.858s
sys	0m0.048s

time ./card-raytracer-cpp-actor.exe 2.ppm
compile Apr 12 2019 16:16:23   LOCK: pthread_mutex
lite_thread 4 threads to file 2.ppm ...
Init end: 194 msec
Time: 11442 msec


real	0m11.449s
user	0m38.711s
sys	0m1.868s

time ./card-raytracer-cpp-actor3.exe 3.ppm
compile Apr 12 2019 16:16:28   LOCK: pthread_mutex
lite_thread 4 threads to file 3.ppm ...
Init end: 2 msec
Time: 10907 msec


real	0m10.910s
user	0m38.701s
sys	0m0.111s



PS Забыл однопоточно запустить (((
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800782
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TДобавил расчет строками на акторах. Там всего 512 сообщений запускается, у меня стало быстрее на 0.1 сек. Затести card-raytracer-cpp-actor3.exe
Merged in master.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800784
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TДобавил расчет строками на акторах. Там всего 512 сообщений запускается, у меня стало быстрее на 0.1 сек. Затести card-raytracer-cpp-actor3.exe
Ты пишешь про card-raytracer-cpp-actor3.exe но в сборочном скрипте такого output нету.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800786
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Затестил. Мультипоточный вариант - уже очень хорошо.

Акторный - пока хреновенько. Наращивание акторов не добавляет мощности к этому софту.
Надо что-то кумекать архитектурно.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
#!/bin/bash -v

for i in {1..4}
do
 time ./card-raytracer-cpp-mt.exe mt-$i.ppm $i
done
compile Apr 12 2019 21:49:01
     0: test 1 threads to file mt-1.ppm
     0: start thread#4876 (lines 511...0)
  8719: thread#4876 (lines 511...0) finished
  8743: test end

real	0m8.746s
user	0m8.741s
sys	0m0.004s
compile Apr 12 2019 21:49:01
     0: test 2 threads to file mt-2.ppm
     0: start thread#4878 (lines 511...256)
     0: start thread#4879 (lines 255...0)
  3327: thread#4878 (lines 511...256) finished
  5547: thread#4879 (lines 255...0) finished
  5566: test end

real	0m5.570s
user	0m8.910s
sys	0m0.004s
compile Apr 12 2019 21:49:01
     0: test 3 threads to file mt-3.ppm
     0: start thread#4881 (lines 511...342)
     0: start thread#4882 (lines 341...172)
     0: start thread#4883 (lines 171...0)
  1614: thread#4881 (lines 511...342) finished
  3349: thread#4883 (lines 171...0) finished
  4131: thread#4882 (lines 341...172) finished
  4149: test end

real	0m4.152s
user	0m9.111s
sys	0m0.008s
compile Apr 12 2019 21:49:01
     0: test 4 threads to file mt-4.ppm
     0: start thread#4886 (lines 383...256)
     0: start thread#4887 (lines 255...128)
     0: start thread#4885 (lines 511...384)
     0: start thread#4888 (lines 127...0)
  1115: thread#4885 (lines 511...384) finished
  2225: thread#4888 (lines 127...0) finished
  2384: thread#4886 (lines 383...256) finished
  3544: thread#4887 (lines 255...128) finished
  3559: test end

real	0m3.562s
user	0m9.294s
sys	0m0.008s

for i in {1..4}
do
 time ./card-raytracer-cpp-actor.exe actor-$i.ppm $i
done
compile Apr 12 2019 21:48:58   LOCK: pthread_mutex
lite_thread 1 threads to file actor-1.ppm ...
Init end: 48 msec
Time: 10677 msec

real	0m10.683s
user	0m11.417s
sys	0m0.863s
compile Apr 12 2019 21:48:58   LOCK: pthread_mutex
lite_thread 2 threads to file actor-2.ppm ...
Init end: 41 msec
Time: 19457 msec

real	0m19.462s
user	0m22.341s
sys	0m13.998s
compile Apr 12 2019 21:48:58   LOCK: pthread_mutex
lite_thread 3 threads to file actor-3.ppm ...
Init end: 44 msec
Time: 18088 msec

real	0m18.092s
user	0m24.209s
sys	0m23.788s
compile Apr 12 2019 21:48:58   LOCK: pthread_mutex
lite_thread 4 threads to file actor-4.ppm ...
Init end: 39 msec
Time: 23792 msec

real	0m23.797s
user	0m32.185s
sys	0m50.214s

...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800787
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Увидел.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800788
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то кривенько было. Еще раз перетестил. Вроде лучше.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
#!/bin/bash -v

for i in {1..4}
do
 time ./card-raytracer-cpp-mt.exe mt-$i.ppm $i
done
compile Apr 12 2019 22:03:06
     0: test 1 threads to file mt-1.ppm
     0: start thread#5427 (lines 511...0)
  9113: thread#5427 (lines 511...0) finished
  9138: test end

real	0m9.141s
user	0m9.127s
sys	0m0.012s
compile Apr 12 2019 22:03:06
     0: test 2 threads to file mt-2.ppm
     0: start thread#5429 (lines 511...256)
     0: start thread#5430 (lines 255...0)
  3504: thread#5429 (lines 511...256) finished
  5826: thread#5430 (lines 255...0) finished
  5841: test end

real	0m5.844s
user	0m9.352s
sys	0m0.008s
compile Apr 12 2019 22:03:06
     0: test 3 threads to file mt-3.ppm
     0: start thread#5432 (lines 511...342)
     0: start thread#5433 (lines 341...172)
     0: start thread#5435 (lines 171...0)
  1622: thread#5432 (lines 511...342) finished
  3455: thread#5435 (lines 171...0) finished
  4299: thread#5433 (lines 341...172) finished
  4316: test end

real	0m4.319s
user	0m9.400s
sys	0m0.004s
compile Apr 12 2019 22:03:06
     0: test 4 threads to file mt-4.ppm
     0: start thread#5437 (lines 511...384)
     0: start thread#5438 (lines 383...256)
     0: start thread#5439 (lines 255...128)
     0: start thread#5440 (lines 127...0)
  1141: thread#5437 (lines 511...384) finished
  2239: thread#5440 (lines 127...0) finished
  2407: thread#5438 (lines 383...256) finished
  3642: thread#5439 (lines 255...128) finished
  3657: test end

real	0m3.660s
user	0m9.460s
sys	0m0.004s

for i in {1..4}
do
 time ./card-raytracer-cpp-actor.exe actor-$i.ppm $i
done
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 1 threads to file actor-1.ppm ...
Init end: 42 msec
Time: 9212 msec

real	0m9.218s
user	0m9.855s
sys	0m0.715s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 2 threads to file actor-2.ppm ...
Init end: 45 msec
Time: 4678 msec

real	0m4.684s
user	0m10.099s
sys	0m0.783s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 3 threads to file actor-3.ppm ...
Init end: 46 msec
Time: 3181 msec

real	0m3.185s
user	0m10.159s
sys	0m0.704s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 4 threads to file actor-4.ppm ...
Init end: 49 msec
Time: 2403 msec

real	0m2.407s
user	0m10.181s
sys	0m0.523s

for i in {1..4}
do
 time ./card-raytracer-cpp-actor3.exe actor3-$i.ppm $i
done
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 1 threads to file actor3-1.ppm ...
Init end: 0 msec
Time: 8724 msec

real	0m8.726s
user	0m8.754s
sys	0m0.008s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 2 threads to file actor3-2.ppm ...
Init end: 1 msec
Time: 4453 msec

real	0m4.456s
user	0m8.950s
sys	0m0.020s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 3 threads to file actor3-3.ppm ...
Init end: 0 msec
Time: 3014 msec

real	0m3.016s
user	0m9.064s
sys	0m0.016s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 4 threads to file actor3-4.ppm ...
Init end: 1 msec
Time: 2258 msec

real	0m2.261s
user	0m9.055s
sys	0m0.004s

...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800793
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько помню, там параллелить надо было поперек, а не вдоль

потому переписывать алгоритм на 100%.

я не стал
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800796
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я смотрю после 4 потока еще перформанс растет. Расширю до 12.

Отлично! Теперь-бы эти 3 столбика цифр нарисовать в Экцселе. Тремя цветами. У меня дурацкий Libre-Office.
Он какие-то стрёмные графики рисует. Так-что прошу кого-то выбрать цифирки и отобразить.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
mayton@mayton-ryzen:~/git/CardRaytracerBenchmark/cpp-mt$ ./run.sh
#!/bin/bash -v

for i in {1..12}
do
 time ./card-raytracer-cpp-mt.exe mt-$i.ppm $i
done
compile Apr 12 2019 22:03:06
     0: test 1 threads to file mt-1.ppm
     0: start thread#6178 (lines 511...0)
  8642: thread#6178 (lines 511...0) finished
  8666: test end

real	0m8.669s
user	0m8.663s
sys	0m0.004s
compile Apr 12 2019 22:03:06
     0: test 2 threads to file mt-2.ppm
     0: start thread#6181 (lines 511...256)
     0: start thread#6182 (lines 255...0)
  3314: thread#6181 (lines 511...256) finished
  5505: thread#6182 (lines 255...0) finished
  5532: test end

real	0m5.535s
user	0m8.846s
sys	0m0.008s
compile Apr 12 2019 22:03:06
     0: test 3 threads to file mt-3.ppm
     0: start thread#6184 (lines 511...342)
     0: start thread#6185 (lines 341...172)
     0: start thread#6186 (lines 171...0)
  1606: thread#6184 (lines 511...342) finished
  3365: thread#6186 (lines 171...0) finished
  4143: thread#6185 (lines 341...172) finished
  4161: test end

real	0m4.164s
user	0m9.139s
sys	0m0.008s
compile Apr 12 2019 22:03:06
     0: test 4 threads to file mt-4.ppm
     0: start thread#6190 (lines 511...384)
     0: start thread#6191 (lines 383...256)
     0: start thread#6192 (lines 255...128)
     0: start thread#6193 (lines 127...0)
  1141: thread#6190 (lines 511...384) finished
  2231: thread#6193 (lines 127...0) finished
  2353: thread#6191 (lines 383...256) finished
  3540: thread#6192 (lines 255...128) finished
  3557: test end

real	0m3.560s
user	0m9.295s
sys	0m0.008s
compile Apr 12 2019 22:03:06
     0: test 5 threads to file mt-5.ppm
     0: start thread#6196 (lines 511...410)
     0: start thread#6197 (lines 409...308)
     0: start thread#6198 (lines 307...206)
     0: start thread#6199 (lines 205...104)
     0: start thread#6200 (lines 103...0)
   903: thread#6196 (lines 511...410) finished
  1390: thread#6197 (lines 409...308) finished
  1695: thread#6200 (lines 103...0) finished
  2639: thread#6199 (lines 205...104) finished
  2664: thread#6198 (lines 307...206) finished
  2680: test end

real	0m2.683s
user	0m9.319s
sys	0m0.000s
compile Apr 12 2019 22:03:06
     0: test 6 threads to file mt-6.ppm
     0: start thread#6202 (lines 511...427)
     0: start thread#6203 (lines 426...342)
     0: start thread#6204 (lines 341...257)
     0: start thread#6205 (lines 256...172)
     0: start thread#6206 (lines 171...87)
     0: start thread#6207 (lines 86...0)
   744: thread#6202 (lines 511...427) finished
   865: thread#6203 (lines 426...342) finished
  1407: thread#6207 (lines 86...0) finished
  1878: thread#6204 (lines 341...257) finished
  2063: thread#6206 (lines 171...87) finished
  2402: thread#6205 (lines 256...172) finished
  2422: test end

real	0m2.425s
user	0m9.383s
sys	0m0.012s
compile Apr 12 2019 22:03:06
     0: test 7 threads to file mt-7.ppm
     0: start thread#6209 (lines 511...439)
     0: start thread#6210 (lines 438...366)
     0: start thread#6212 (lines 365...293)
     0: start thread#6213 (lines 292...220)
     0: start thread#6214 (lines 219...147)
     0: start thread#6215 (lines 146...74)
     0: start thread#6216 (lines 73...0)
   635: thread#6209 (lines 511...439) finished
   955: thread#6210 (lines 438...366) finished
  1195: thread#6216 (lines 73...0) finished
  1441: thread#6212 (lines 365...293) finished
  1834: thread#6215 (lines 146...74) finished
  1904: thread#6213 (lines 292...220) finished
  2075: thread#6214 (lines 219...147) finished
  2092: test end

real	0m2.095s
user	0m10.071s
sys	0m0.000s
compile Apr 12 2019 22:03:06
     0: test 8 threads to file mt-8.ppm
     0: start thread#6218 (lines 511...448)
     0: start thread#6219 (lines 447...384)
     0: start thread#6220 (lines 383...320)
     0: start thread#6221 (lines 319...256)
     0: start thread#6222 (lines 255...192)
     0: start thread#6223 (lines 191...128)
     0: start thread#6224 (lines 127...64)
     0: start thread#6225 (lines 63...0)
   562: thread#6218 (lines 511...448) finished
   574: thread#6219 (lines 447...384) finished
   931: thread#6220 (lines 383...320) finished
  1076: thread#6225 (lines 63...0) finished
  1410: thread#6224 (lines 127...64) finished
  1753: thread#6221 (lines 319...256) finished
  2009: thread#6223 (lines 191...128) finished
  2104: thread#6222 (lines 255...192) finished
  2119: test end

real	0m2.122s
user	0m10.448s
sys	0m0.004s
compile Apr 12 2019 22:03:06
     0: test 9 threads to file mt-9.ppm
     0: start thread#6227 (lines 511...456)
     0: start thread#6228 (lines 455...400)
     0: start thread#6229 (lines 399...344)
     0: start thread#6230 (lines 343...288)
     0: start thread#6231 (lines 287...232)
     0: start thread#6232 (lines 231...176)
     0: start thread#6233 (lines 175...120)
     0: start thread#6234 (lines 119...64)
     0: start thread#6235 (lines 63...0)
   485: thread#6227 (lines 511...456) finished
   649: thread#6229 (lines 399...344) finished
   700: thread#6228 (lines 455...400) finished
  1240: thread#6230 (lines 343...288) finished
  1340: thread#6235 (lines 63...0) finished
  1342: thread#6234 (lines 119...64) finished
  1724: thread#6231 (lines 287...232) finished
  1755: thread#6233 (lines 175...120) finished
  1896: thread#6232 (lines 231...176) finished
  1914: test end

real	0m1.917s
user	0m11.154s
sys	0m0.012s
compile Apr 12 2019 22:03:06
     0: test 10 threads to file mt-10.ppm
     0: start thread#6237 (lines 511...461)
     0: start thread#6238 (lines 460...410)
     0: start thread#6239 (lines 409...359)
     0: start thread#6240 (lines 358...308)
     0: start thread#6241 (lines 307...257)
     0: start thread#6242 (lines 256...206)
     0: start thread#6243 (lines 205...155)
     0: start thread#6244 (lines 154...104)
     0: start thread#6245 (lines 103...53)
     0: start thread#6246 (lines 52...0)
   695: thread#6238 (lines 460...410) finished
   700: thread#6237 (lines 511...461) finished
   782: thread#6239 (lines 409...359) finished
   847: thread#6245 (lines 103...53) finished
  1122: thread#6246 (lines 52...0) finished
  1234: thread#6240 (lines 358...308) finished
  1490: thread#6241 (lines 307...257) finished
  1540: thread#6242 (lines 256...206) finished
  1551: thread#6244 (lines 154...104) finished
  1725: thread#6243 (lines 205...155) finished
  1740: test end

real	0m1.743s
user	0m11.721s
sys	0m0.000s
compile Apr 12 2019 22:03:06
     0: test 11 threads to file mt-11.ppm
     0: start thread#6248 (lines 511...466)
     0: start thread#6249 (lines 465...420)
     0: start thread#6250 (lines 419...374)
     0: start thread#6251 (lines 373...328)
     0: start thread#6252 (lines 327...282)
     0: start thread#6253 (lines 281...236)
     0: start thread#6254 (lines 235...190)
     0: start thread#6255 (lines 189...144)
     0: start thread#6256 (lines 143...98)
     0: start thread#6257 (lines 97...52)
     0: start thread#6258 (lines 51...0)
   416: thread#6248 (lines 511...466) finished
   629: thread#6249 (lines 465...420) finished
   659: thread#6250 (lines 419...374) finished
   996: thread#6257 (lines 97...52) finished
  1013: thread#6251 (lines 373...328) finished
  1015: thread#6258 (lines 51...0) finished
  1302: thread#6256 (lines 143...98) finished
  1440: thread#6255 (lines 189...144) finished
  1506: thread#6252 (lines 327...282) finished
  1550: thread#6253 (lines 281...236) finished
  1738: thread#6254 (lines 235...190) finished
  1755: test end

real	0m1.758s
user	0m12.291s
sys	0m0.004s
compile Apr 12 2019 22:03:06
     0: test 12 threads to file mt-12.ppm
     0: start thread#6260 (lines 511...470)
     0: start thread#6261 (lines 469...428)
     0: start thread#6262 (lines 427...386)
     0: start thread#6263 (lines 385...344)
     0: start thread#6264 (lines 343...302)
     0: start thread#6266 (lines 259...218)
     0: start thread#6265 (lines 301...260)
     0: start thread#6267 (lines 217...176)
     0: start thread#6268 (lines 175...134)
     0: start thread#6271 (lines 49...0)
     0: start thread#6270 (lines 91...50)
     6: start thread#6269 (lines 133...92)
   575: thread#6261 (lines 469...428) finished
   577: thread#6260 (lines 511...470) finished
   590: thread#6262 (lines 427...386) finished
   766: thread#6263 (lines 385...344) finished
   904: thread#6270 (lines 91...50) finished
  1224: thread#6264 (lines 343...302) finished
  1291: thread#6265 (lines 301...260) finished
  1301: thread#6271 (lines 49...0) finished
  1406: thread#6269 (lines 133...92) finished
  1407: thread#6267 (lines 217...176) finished
  1426: thread#6268 (lines 175...134) finished
  1592: thread#6266 (lines 259...218) finished
  1608: test end

real	0m1.611s
user	0m13.044s
sys	0m0.004s

for i in {1..12}
do
 time ./card-raytracer-cpp-actor.exe actor-$i.ppm $i
done
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 1 threads to file actor-1.ppm ...
Init end: 43 msec
Time: 8787 msec

real	0m8.793s
user	0m9.358s
sys	0m0.892s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 2 threads to file actor-2.ppm ...
Init end: 42 msec
Time: 4586 msec

real	0m4.591s
user	0m9.799s
sys	0m0.935s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 3 threads to file actor-3.ppm ...
Init end: 44 msec
Time: 3085 msec

real	0m3.090s
user	0m9.944s
sys	0m0.647s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 4 threads to file actor-4.ppm ...
Init end: 47 msec
Time: 2376 msec

real	0m2.379s
user	0m10.058s
sys	0m0.482s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 5 threads to file actor-5.ppm ...
Init end: 46 msec
Time: 1948 msec

real	0m1.953s
user	0m10.152s
sys	0m0.546s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 6 threads to file actor-6.ppm ...
Init end: 61 msec
Time: 1679 msec

real	0m1.682s
user	0m10.551s
sys	0m0.417s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 7 threads to file actor-7.ppm ...
Init end: 61 msec
Time: 1568 msec

real	0m1.571s
user	0m11.406s
sys	0m0.485s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 8 threads to file actor-8.ppm ...
Init end: 67 msec
Time: 1518 msec

real	0m1.521s
user	0m12.551s
sys	0m0.533s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 9 threads to file actor-9.ppm ...
Init end: 59 msec
Time: 1492 msec

real	0m1.495s
user	0m13.844s
sys	0m0.475s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 10 threads to file actor-10.ppm ...
Init end: 62 msec
Time: 1423 msec

real	0m1.426s
user	0m14.546s
sys	0m0.583s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 11 threads to file actor-11.ppm ...
Init end: 52 msec
Time: 1364 msec

real	0m1.367s
user	0m15.090s
sys	0m0.606s
compile Apr 12 2019 22:03:02   LOCK: pthread_mutex
lite_thread 12 threads to file actor-12.ppm ...
Init end: 58 msec
Time: 1348 msec

real	0m1.351s
user	0m15.285s
sys	0m0.733s

for i in {1..12}
do
 time ./card-raytracer-cpp-actor3.exe actor3-$i.ppm $i
done
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 1 threads to file actor3-1.ppm ...
Init end: 0 msec
Time: 8204 msec

real	0m8.206s
user	0m8.245s
sys	0m0.012s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 2 threads to file actor3-2.ppm ...
Init end: 1 msec
Time: 4271 msec

real	0m4.274s
user	0m8.591s
sys	0m0.004s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 3 threads to file actor3-3.ppm ...
Init end: 1 msec
Time: 2962 msec

real	0m2.964s
user	0m8.906s
sys	0m0.008s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 4 threads to file actor3-4.ppm ...
Init end: 1 msec
Time: 2221 msec

real	0m2.224s
user	0m8.902s
sys	0m0.016s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 5 threads to file actor3-5.ppm ...
Init end: 2 msec
Time: 1784 msec

real	0m1.787s
user	0m8.914s
sys	0m0.008s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 6 threads to file actor3-6.ppm ...
Init end: 1 msec
Time: 1498 msec

real	0m1.501s
user	0m8.998s
sys	0m0.004s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 7 threads to file actor3-7.ppm ...
Init end: 1 msec
Time: 1446 msec

real	0m1.449s
user	0m10.094s
sys	0m0.012s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 8 threads to file actor3-8.ppm ...
Init end: 1 msec
Time: 1411 msec

real	0m1.413s
user	0m11.260s
sys	0m0.004s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 9 threads to file actor3-9.ppm ...
Init end: 1 msec
Time: 1365 msec

real	0m1.367s
user	0m12.229s
sys	0m0.008s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 10 threads to file actor3-10.ppm ...
Init end: 1 msec
Time: 1342 msec

real	0m1.344s
user	0m13.300s
sys	0m0.004s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 11 threads to file actor3-11.ppm ...
Init end: 1 msec
Time: 1291 msec

real	0m1.293s
user	0m14.122s
sys	0m0.008s
compile Apr 12 2019 22:03:04   LOCK: pthread_mutex
lite_thread 12 threads to file actor3-12.ppm ...
Init end: 1 msec
Time: 1261 msec

real	0m1.263s
user	0m14.972s
sys	0m0.008s

...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800797
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglнасколько помню, там параллелить надо было поперек, а не вдоль

потому переписывать алгоритм на 100%.

я не стал
Ты имеешь в виду векторизацию?
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800804
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновил run-скрипты.
Добавил скрипт для Виндовс. Обновитесь.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800835
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ смотрю после 4 потока еще перформанс растет. Расширю до 12.
kealon(Ruslan) был прав 21860492 тормозил rand()

maytonОтлично! Теперь-бы эти 3 столбика цифр нарисовать в Экцселе. Тремя цветами. У меня дурацкий Libre-Office.
Позже сделаю.

Еще надо вернуть в акторы спинлок (который я на мутекс заменил) и перетестить.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800860
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты boost-примитивы пробовал?
В сравнении с std.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800866
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный топик получился. Надо-бы что-то подобное поднять. На тему
мультизадачности и кешей например.

Только без карточного трассировщика. Он ограничен тем что не использует
память. А надо найти что-то такое... хм. Чтоб долбануть по всем кешам
сразу и из 4-8 ядер.

Щас думаю об клеточных автоматах. Они очень просты в реализации. И хорошо параллелятся.
https://en.wikipedia.org/wiki/Conway's_Game_of_Life
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800872
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕще надо вернуть в акторы спинлок (который я на мутекс заменил) и перетестить.
А зачем нам два акторных релиза? Они отличаются.. ну 20 строками. Может их слить в одно приложение?
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800890
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОтлично! Теперь-бы эти 3 столбика цифр нарисовать в Экцселе. Тремя цветами. У меня дурацкий Libre-Office.

Табличкой так получается, вторая колонка во сколько раз быстрее однопоточного

ПотоковN блоковПопиксельноПострочно1866687878204255321.645861.942711.9341612.130852.829622.8435572.423763.722213.7526803.219484.517844.6624223.616795.214985.5720924.115685.614465.7821194.115185.814115.8919144.514925.913656.01017405.014236.213426.11117554.913646.412916.41216085.413486.512616.5
График
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800897
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima TЕще надо вернуть в акторы спинлок (который я на мутекс заменил) и перетестить.
А зачем нам два акторных релиза? Они отличаются.. ну 20 строками. Может их слить в одно приложение?
Для теста добавил, т.к. непонятно было в чем тормоз. Первый считает попиксельно, второй построчно. Какой оставить - не знаю, с точки зрения распараллеливания у второго меньше накладных расходов, думаю его надо оставить.

Вернул обратно блокировку спинлоками. Обновись. Затести, потом удалим первый.
maytonОбновил run-скрипты.
Добавил скрипт для Виндовс. Обновитесь.
Я со своим форком работаю, есть какая-то кнопка чтобы в него все твои изменения попали? Или удалить и форкнуть заново?
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800907
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tmaytonпропущено...

А зачем нам два акторных релиза? Они отличаются.. ну 20 строками. Может их слить в одно приложение?
Для теста добавил, т.к. непонятно было в чем тормоз. Первый считает попиксельно, второй построчно. Какой оставить - не знаю, с точки зрения распараллеливания у второго меньше накладных расходов, думаю его надо оставить.

Вернул обратно блокировку спинлоками. Обновись. Затести, потом удалим первый.
maytonОбновил run-скрипты.
Добавил скрипт для Виндовс. Обновитесь.
Я со своим форком работаю, есть какая-то кнопка чтобы в него все твои изменения попали? Или удалить и форкнуть заново?
Есть. В средах разработки которые поддерживают гит есть кнопка Merge -> from branch -> remote/master.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800908
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonОтлично! Теперь-бы эти 3 столбика цифр нарисовать в Экцселе. Тремя цветами. У меня дурацкий Libre-Office.

Табличкой так получается, вторая колонка во сколько раз быстрее однопоточного

ПотоковN блоковПопиксельноПострочно1866687878204255321.645861.942711.9341612.130852.829622.8435572.423763.722213.7526803.219484.517844.6624223.616795.214985.5720924.115685.614465.7821194.115185.814115.8919144.514925.913656.01017405.014236.213426.11117554.913646.412916.41216085.413486.512616.5
График

Не очень понятно почему построчно быстрее чем блочно.
Возможно мы стоим в ожидании последнего блока и это
объясняет потери. Неравномерность рендеринга.
...
Рейтинг: 0 / 0
Особенности многопоточности виндовса и линукса, AMD и Intel
    #39800928
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНе очень понятно почему построчно быстрее чем блочно.
Возможно мы стоим в ожидании последнего блока и это
объясняет потери. Неравномерность рендеринга.
Не, блочно все стартуют одновременно, но каждый поток заканчивает в разное время, в логе же все видно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
     0: test 4 threads to file mt-4.ppm
     0: start thread#5437 (lines 511...384)
     0: start thread#5438 (lines 383...256)
     0: start thread#5439 (lines 255...128)
     0: start thread#5440 (lines 127...0)
  1141: thread#5437 (lines 511...384) finished
  2239: thread#5440 (lines 127...0) finished
  2407: thread#5438 (lines 383...256) finished
  3642: thread#5439 (lines 255...128) finished


Четверный за 1141 мс отработал, а третий за 3642 мс. А итого по последнему, отсюда тормоза.

В случае с акторами построчно: есть очередь с 512 заданиями (1 строка - 1 задание), есть N акторов, каждый актор берет задание из очереди, обсчитывает, берет следующее и т.д. Т.е. все потоки работают почти до конца. Затраты на извлечение из очереди незначительны.
...
Рейтинг: 0 / 0
25 сообщений из 116, страница 4 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Особенности многопоточности виндовса и линукса, AMD и Intel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]