跳转至

IPCC Preliminary SLIC test

test on node5

g++ -std=c++11 SLIC.cpp -o SLIC
time ./SLIC
./SLIC  28.46s user 0.52s system 99% cpu 29.027 total
slic

test on amd_256

gcc 10.2.0
[1]    122955 segmentation fault (core dumped)  ./SLIC
我傻逼了,我把cpp移动了,但是输入文件忘记动了
cat ./log/job_436960_rank0_fb0707_0.out
Computing time=21872 ms
There are 0 points' labels are different from original file.

gdb on segmentation fault

  1. ulimit -c 显示核心转储文件大小的最大值
    ulimit -c unlimited # 打开
    ulimit -c 0         # 关闭
    
  2. 执行编译加入-g的SLIC程序,产生core文件
  3. 然后执行进gdb
    gdb SLIC core.199048 
       bt
    
    (gdb) bt
    #0  0x00002af6047e4a4b in fgets () from /lib64/libc.so.6
    #1  0x000000000040450a in LoadPPM (filename=0x407e63 "input_image.ppm", data=0x7ffecda55cc8, width=0x7ffecda55cc4, height=0x7ffecda55cc0) at SLIC_raw.cpp:692
    #2  0x00000000004049e1 in main (argc=1, argv=0x7ffecda55de8) at SLIC_raw.cpp:794
    

要求

  1. 对slic.PerformSLICO_ForGivenK 函数运行时间进行通用优化
  2. 首先是并行化处理
  3. 读取时间不在计分范围
  4. 可以优化编译选项
  5. 可以改变数据结构与类型
  6. 需保证结果正确
  7. 之后有多组数据

需要进一步的研究学习

遇到的问题

北京超算的机器传文件只能用wincp,而且有时候不行,需要刷新缓存

参考文献