Mercurial > hg > Members > masakoha > masa
comparison 2014/February/memo/03rd.txt @ 32:07176dd2dddc
add 03rd.txt
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 03 Feb 2014 20:35:58 +0900 |
parents | 5c7d17c36564 |
children | 37d843c14923 |
comparison
equal
deleted
inserted
replaced
31:5c7d17c36564 | 32:07176dd2dddc |
---|---|
1 2014/02/01 (Sat) | 1 2014/02/03 (Mon) |
2 [program] | 2 [program] |
3 [昨日] | 3 とりあえず、manager->allocate の内部実装を int -> long long に変更した。 |
4 2GB 以上を取ろうとすると | 4 regex_mas 2GB 以上の file を読み込ますと、mmap と divide read の違いで結果が違ってしまう。 -> 多分、ちゃんと読み込みされていないのでは?? |
5 regex(19797,0x7fff75dad310) malloc: *** mach_vm_map(size=18446744071569698816) failed (error code=3) | |
6 *** error: can't allocate region | |
7 *** set a breakpoint in malloc_error_break to debug | |
8 Can't allocate memory | |
9 | 5 |
10 もしかして、allocate sizeに限界がある?? | 6 grep -c "doing" 2g.txt -> 5209072 |
11 [改善] | 7 ./regex -file 2g.txt -sw doing -cpu 4 -> 5209072 |
12 TaskManager/kernel/ppe/TaskManager.cc | 8 ./regex -file 2g.txt -sw doing -cpu 4 -dr -> 5190577 |
13 TaskManager/kernel/ppe/TaskManager.h | |
14 TaskManager/kernel/ppe/TaskManagerImpl.h | |
15 | 9 |
16 size が int 型だったので、それをlong long に変更。 | 10 ./regex -file 3g.txt -sw doing -cpu 4 -> 7799680 |
17 (push は確認してから) | 11 ./regex -file 3g.txt -sw doing -cpu 4 -dr -> 5190577 |
12 | |
13 やっぱり 2GB の壁くさい | |
14 | |
15 segmentation fault が起こらないということは、ちゃんと allocate はされているっぽい。 | |
16 ということは、やはり read 関係のどこかで 2GB 制限がかかってるのではないか。 | |
17 (API を int -> long long にかえないといけない部分がまだ存在すると思われる。 | |
18 | |
19 divide read mode 時、wbuf の address の動きが怪しい | |
20 long だと MAX が約2GB。つまりどこかで long long にしないとこれは直らない。 |