Re: [問題] Thread效能的疑惑
: → adxis:memory allocation time? 02/03 22:01
: → lungswu:我記得boost的thread是....改用pthread or win32 API看看? 02/03 22:02
: → zxvc:樓上有什麼八卦? 02/03 22:09
: → zxvc:一樓,我覺得這有可能。因為我主要的運算在作遞迴。但我記憶 02/03 22:12
: → zxvc:憶體使用不高,2 threads大約2MB。 02/03 22:13
: → zxvc:我後來又覺得問題不在遞迴。或者這樣講好了,我認為我的程式 02/03 22:17
: → zxvc:2 threads大部分的狀況都跟2 processes的狀況一樣,但感覺 02/03 22:19
: → zxvc:2 processes的效能趨近2倍。 02/03 22:20
: 推 flydragon198:context swap會是這個關係嗎?? 02/03 22:21
: → zxvc:我改天再把2 processes的實驗數據做出來。先去睡覺 (逃) 02/03 22:21
程式複製二個,各跑500筆(2 processes),花了1.583 (min.),
真的趨近兩倍。
: → flydragon198:@@context switch 02/03 22:22
: → adxis:我覺得可以看一下allocate mem這段 如果是先做出pool 02/03 22:25
: → adxis:再branch 成兩個 thread 或許會不一樣 02/03 22:25
: → adxis:可以先觀察 page fault 的狀況 02/03 22:26
: → lungswu:感覺2個thread都再同一個CPU上執行的樣子... 02/03 22:27
: → a127a127:推二樓。 2 processes有變快就改用kernel-level thread吧 02/04 04:34
我改用pthread:
http://sourceware.org/pthreads-win32/
也有使用kernel thread:
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM));
但還是效能不彰,2 cores、2 kernel threads、2.6x (min.)
XD
: 推 akaing:感覺應該在kernel thread這塊的問題 如果kernel thread沒 02/04 08:10
: → akaing:變 user-thread叫在多 還是只照os的預設設定去跑 02/04 08:11
我還試過把2 threads,模擬1 thread的效能,類似如下(boost):
thread t1(&f);
t1.join();
thread t2(&f);
t2.join();
還是跑3.x (min.),也就是跟1 thread相當的時間。
我認為我的multi-thread程式有照著2 processes的情況去寫,
包括memory的allocation,比如說我有一個class,
每個thread只會在一開始配置一次。2 processes也是一樣的情形。
但不知為什麼2 threads效能不彰。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.4.129
→
02/04 10:44, , 1F
02/04 10:44, 1F
→
02/04 10:46, , 2F
02/04 10:46, 2F
→
02/04 11:07, , 3F
02/04 11:07, 3F
→
02/04 11:08, , 4F
02/04 11:08, 4F
→
02/04 11:09, , 5F
02/04 11:09, 5F
→
02/04 11:11, , 6F
02/04 11:11, 6F
→
02/04 11:12, , 7F
02/04 11:12, 7F
→
02/04 11:14, , 8F
02/04 11:14, 8F
→
02/04 11:32, , 9F
02/04 11:32, 9F
→
02/04 11:32, , 10F
02/04 11:32, 10F
→
02/04 11:34, , 11F
02/04 11:34, 11F
→
02/04 11:41, , 12F
02/04 11:41, 12F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章