Ceriumによる
正規表現マッチャの実装
Masataka Kohagura
2nd April , 2013
Masataka Kohagura
2nd April , 2013
本研究室では、Cell用に作られたCeriumにて並列プログラミングを行なっている。 近年、マルチコアCPUが主流となっているが、それをフルに使用させるためには並列プログラミングの並列度を上げる必要がある。(続く)
現在は正規表現を並列実装している段階である。
a*bが含まれている単語数と行数をカウントするようにした。
Print.ccで、データの受け渡しの様子の確認。
for (; i < length; i++) { if (i_data[i] == 0x61) { word_head_a_flag = true; } else if ((i_data[i] == 0x62) && (word_head_a_flag == true)){ word_flag = true; line_flag = true; word_head_a_flag = true; } else if (i_data[i] == 0x20) { //空白 word_num += word_flag; word_flag = false; word_head_a_flag = false; } else if (i_data[i] == 0x0A) { // 改行 line_num += line_flag; word_num += word_flag; line_flag = false; word_flag = false; word_head_a_flag = false; } }
[Masa]~% ./regex -file b.txt [~/hg/Cerium/example/regex_mas] file size 75 fix 4096byte file size 4096 w 7ffc43a07440 dvision_size 4096 task_num 1 out_task_num 1 out size 32 SPE include 'a*b' 3 lines. 5 words. start sum 3 5 Time: 0.000424
SPE include 'a*b' 3 lines. 5 words.