# 06/18/20 - 06/25/20 - Compile `qsdmt` on `gjin2-T3610` and run `parsec vips` and `toys` evalution - `gjin2-T3610` can compile and run `qsdmt` without errors - Trace workflow one of the benchmark `parsec vips`: - `qsdmt/apps/parsec/parsec-2.0/pkgs/apps/vips/src/src/iofuncs/vips.c` - the file is used as parsing the input command - the input command: - `time LD_PRELOAD=/home/hsung2/qsdmt/dync_hook/interpose.so IM_CONCURRENCY=12 /home/hsung2/qsdmt/apps/parsec/vips im_benchmark orion_18000x18000.v output.v` - The evaluation is running the `im_benchmark` options. - The im_benchmark is written in the file - `qsdmt/apps/parsec/parsec-2.0/pkgs/apps/vips/src/libsrc/other/im_benchmark.c`. - the `vips.c` will execute the function called `im_run_command()` to execute selected options in the file - `qsdmt/apps/parsec/parsec-2.0/pkgs/apps/vips/src/libsrc/iofuncs/package.c` - the function `im_run_command()` will call another function called `dispatch_function()` to execute the selected options. - Using Valgrind with KCachegrind to browse callgraph - In the `im_benchmark`: - im_LabQ2disp --> im_LabQ2disp_build_table --> im_LabQ2disp_table --> im_wrapone --> im_wrapmany --> im_generate --> im_thread_group_create --> im_region_create --> g_thread_create_full --> (doing task) ... - According to this chain and the paper, https://parsec.cs.princeton.edu/doc/parsec-report.pdf, - In the start point, The vips will divide image as serval `regions` and create thread to do task for each `regions` - In the end point, the `regions` will be combined. :::danger - However, I still do not know whether the im_benchmark is seperate regions in each image processing stage for just on the first and the end. ::: - ![](https://i.imgur.com/1NHR8Hl.png) - According to this map, the total thread for vips will be 16 when setting configuration as 12 threads. - Evaluting different size of input for `parsec vips` with all-policies on - Environment: - gjin2-T3610 `12-core 24-thread` - The config (vips.cfg): ```config [parsec vips] REPEATS = 10 PARSEC_NTHREADS = 12 INPUTS = im_benchmark *.v output.v TARBALL = parsec-2.0/pkgs/apps/vips/inputs/*.tar EXPORT = IM_CONCURRENCY=%(PARSEC_NTHREADS)s RUN_CONFIGS = all-policies non_det_for_single_thread = 0 log_sync = 1 ``` - Output: - TARBALL: `input_simdev.tar` INPUTS: `barbados_256x288.v` ``` bench, config, avg_time, sem, overhead, all times... parsec vips, non-det, 0.04069999999999999, 0.00037549966711037156, 0%, 0.039, 0.04, 0.04, 0.043, 0.042, 0.04, 0.042, 0.041, 0.04, 0.04 parsec vips, xtern-all-policies, 0.1571, 0.00918634856730355, 285.995%, 0.243, 0.153, 0.154, 0.14, 0.153, 0.143, 0.151, 0.141, 0.148, 0.145 ``` - TARBALL: `input_simsmall.tar` INPUTS: ` pomegranate_1600x1200.v` ``` bench, config, avg_time, sem, overhead, all times... parsec vips, non-det, 0.0968, 0.0005440588203494182, 0%, 0.092, 0.097, 0.098, 0.098, 0.097, 0.098, 0.097, 0.098, 0.097, 0.096 parsec vips, xtern-all-policies, 0.9356, 0.011291766912224138, 866.529%, 0.952, 0.917, 0.926, 0.862, 0.97, 0.909, 0.992, 0.913, 0.951, 0.964 ``` - TARBALL: `input_simmedium.tar` INPUTS: `vulture_2336x2336.v` ``` bench, config, avg_time, sem, overhead, all times... parsec vips, non-det, 0.2549, 0.01963030819931261, 0%, 0.211, 0.241, 0.228, 0.213, 0.245, 0.369, 0.208, 0.383, 0.21, 0.241 parsec vips, xtern-all-policies, 2.4466, 0.014386243429054028, 859.827%, 2.432, 2.351, 2.431, 2.476, 2.425, 2.466, 2.436, 2.506, 2.519, 2.424 ``` - TARBALL: `input_simlarge.tar` INPUTS: `bigben_2662x5500.v` ``` bench, config, avg_time, sem, overhead, all times... parsec vips, non-det, 0.6311, 0.027931505509012577, 0%, 0.506, 0.78, 0.509, 0.64, 0.678, 0.603, 0.649, 0.758, 0.555, 0.633 parsec vips, xtern-all-policies, 6.3928, 0.023267488046628523, 912.961%, 6.332, 6.304, 6.455, 6.344, 6.481, 6.254, 6.448, 6.433, 6.424, 6.453 ``` - TARBALL: `input_native.tar` INPUTS: `orion_18000x18000.v` ``` bench, config, avg_time, sem, overhead, all times... parsec vips, non-det, 14.041599999999999, 0.3303860832420155, 0%, 12.996, 14.182, 11.773, 14.746, 14.974, 12.87, 14.743, 14.482, 14.778, 14.872 parsec vips, xtern-all-policies, 137.87460000000002, 0.11747426952315916, 881.901%, 138.563, 137.867, 137.602, 137.173, 138.023, 137.849, 137.651, 138.377, 137.755, 137.886 ```