# Chapel and C/C++ performance difference

**URL:** <https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432>\
**Category:** Users\
**Created:** [June 8, 2023, 8:57pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432 "2023-06-08T20:57:57Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 8, 2023, 8:57pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/1 "2023-06-08T20:57:57Z")

</div>

We developed a new connected components graph algorithm, Contour. Compared with the existing FastSV algorithm implemented in Chapel, the Contour algorithm can achieve about 2-8 times speedup. We also implemented the Contour algorithm in the GBBS graph package. The speedup is about 2x speedup. However, the execution time in C++ is much shorter. We hope to find the reason why Chapel has a big overhead.

The Chapel comparison in Arkouda is as follows.

1 building the Chapel environment, version \>=1.29.0  
2 downloading the latest arkouda package  
3 downlowing arkouda-njit package ([git@github.com](mailto:git@github.com):Bears-R-Us/arkouda-njit.git) under ther arkouda directory; renaming arkouda-njit as arkouda\_njit  
4 compiling arkouda-njit  
enter arkouda/arkouda\_njit directory  
python module\_configuration.py --ak\_loc=/complete/path/to/arkouda/ --pkg\_path=/complete/path/to/arkouda\_njit/arachne\_development/ | bash  
5 under the arkouda directory, start arkouda server  
./arkouda -nl 1 --ServerConfig.ServerPort=5050 2\>&1|tee -a output.text  
6 executing the comparison program under the directory arkouda\_njit/arachne\_development/test/client/benchmarks  
./runclient.sh batch\_cc.py machinename 5050

in batch\_cc.py, we can just keep the delaunay\_n20.mtx graph and remove all other graphs. we need to download the graph file and change the directory to its location.  
here is the output of FastSV (fast sv cc) and our Contour (fs dist cc) results in output.text.  
2023-06-08:09:39:09 [CCMsg] segCCMsg Line 2404 DEBUG [Chapel] Time elapsed for fast sv cc: 0.144295  
2023-06-08:09:39:09 [CCMsg] segCCMsg Line 2418 DEBUG [Chapel] Time elapsed for fs dist cc: 0.017734

The C++ gbbs package based comparison is as follows.

1 downloading gbbs  
git clone [git@github.com](mailto:git@github.com):zhihuidu/gbbs.git  
2 building gbbs  
cd gbbs  
git submodule update --init  
bazel build //...  
3 generating the conver tool  
cd gbs/utils  
make  
./snap\_converter -i edglistfile -o adjfile  
given edge list file as input , output the adjacency list file for gbbs.  
4 run the test  
numactl -i all ./bazel-bin/benchmarks/Connectivity/ConnectIt/mains/shiloach\_vishkin -rounds 3 -s -m -r 10 ./inputs/delaunay\_n20.adj  
it will use the input file delaunay\_n20.adj as input graph, run the algorithm shiloach\_vishkin  
the average execution time is  
{  
"test\_type": "static\_connectivity\_result",  
"test\_name" : "shiloach\_vishkin; no\_sampling",  
"graph" : "./inputs/delaunay\_n20.adj",  
"rounds" : 10,  
"medt" : 0.02108,  
"mint" : 0.020909,  
"maxt" : 0.021629  
}

the following command will run our contour algorithm.  
numactl -i all ./bazel-bin/benchmarks/Connectivity/ConnectIt/mains/contour -rounds 3 -s -m -r 10 ./inputs/delaunay\_n20.adj

The no\_sampling results are as follows.  
{  
"test\_type": "static\_connectivity\_result",  
"test\_name" : "contour; no\_sampling",  
"graph" : "./inputs/delaunay\_n20.adj",  
"rounds" : 10,  
"medt" : 0.013881,  
"mint" : 0.013434,  
"maxt" : 0.014609  
}

The system information is as follows.

uname -a  
Linux alex 5.19.0-43-generic #44~22.04.1-Ubuntu SMP PREEMPT\_DYNAMIC Mon May 22 13:39:36 UTC 2 x86\_64 x86\_64 x86\_64 GNU/Linux

cat /proc/cpuinfo the last processor informaiton is as follows.

processor : 23  
vendor\_id : GenuineIntel  
cpu family : 6  
model : 151  
model name : 12th Gen Intel(R) Core(TM) i9-12900KS  
stepping : 2  
microcode : 0x2c  
cpu MHz : 3400.000  
cache size : 30720 KB  
physical id : 0  
siblings : 24  
core id : 39  
cpu cores : 16  
apicid : 78  
initial apicid : 78  
fpu : yes  
fpu\_exception : yes  
cpuid level : 32  
wp : yes  
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant\_tsc art arch\_perfmon pebs bts rep\_good nopl xtopology nonstop\_tsc cpuid aperfmperf tsc\_known\_freq pni pclmulqdq dtes64 monitor ds\_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4\_1 sse4\_2 x2apic movbe popcnt tsc\_deadline\_timer aes xsave avx f16c rdrand lahf\_lm abm 3dnowprefetch cpuid\_fault epb invpcid\_single ssbd ibrs ibpb stibp ibrs\_enhanced tpr\_shadow vnmi flexpriority ept vpid ept\_ad fsgsbase tsc\_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel\_pt sha\_ni xsaveopt xsavec xgetbv1 xsaves split\_lock\_detect avx\_vnni dtherm ida arat pln pts hwp hwp\_notify hwp\_act\_window hwp\_epp hwp\_pkg\_req hfi umip pku ospke waitpkg gfni vaes vpclmulqdq tme rdpid movdiri movdir64b fsrm md\_clear serialize pconfig arch\_lbr ibt flush\_l1d arch\_capabilities  
vmx flags : vnmi preemption\_timer posted\_intr invvpid ept\_x\_only ept\_ad ept\_1gb flexpriority apicv tsc\_offset vtpr mtf vapic ept vpid unrestricted\_guest vapic\_reg vid ple shadow\_vmcs ept\_mode\_based\_exec tsc\_scaling usr\_wait\_pause  
bugs : spectre\_v1 spectre\_v2 spec\_store\_bypass swapgs eibrs\_pbrsb  
bogomips : 6835.20  
clflush size : 64  
cache\_alignment : 64  
address sizes : 46 bits physical, 48 bits virtual  
power management:  
cat /proc/meminfo as follows.  
cat /proc/meminfo  
MemTotal: 32606972 kB  
MemFree: 29801908 kB  
MemAvailable: 31092068 kB  
Buffers: 101636 kB  
Cached: 1503568 kB  
SwapCached: 0 kB  
Active: 812976 kB  
Inactive: 1249784 kB  
Active(anon): 2596 kB  
Inactive(anon): 454284 kB  
Active(file): 810380 kB  
Inactive(file): 795500 kB  
Unevictable: 32 kB  
Mlocked: 32 kB  
SwapTotal: 2097148 kB  
SwapFree: 2097148 kB  
Zswap: 0 kB  
Zswapped: 0 kB  
Dirty: 4 kB  
Writeback: 0 kB  
AnonPages: 457856 kB  
Mapped: 326920 kB  
Shmem: 11356 kB  
KReclaimable: 105424 kB  
Slab: 405600 kB  
SReclaimable: 105424 kB  
SUnreclaim: 300176 kB  
KernelStack: 13104 kB  
PageTables: 16904 kB  
NFS\_Unstable: 0 kB  
Bounce: 0 kB  
WritebackTmp: 0 kB  
CommitLimit: 18400632 kB  
Committed\_AS: 3935208 kB  
VmallocTotal: 34359738367 kB  
VmallocUsed: 181992 kB  
VmallocChunk: 0 kB  
Percpu: 26208 kB  
HardwareCorrupted: 0 kB  
AnonHugePages: 0 kB  
ShmemHugePages: 0 kB  
ShmemPmdMapped: 0 kB  
FileHugePages: 0 kB  
FilePmdMapped: 0 kB  
HugePages\_Total: 0  
HugePages\_Free: 0  
HugePages\_Rsvd: 0  
HugePages\_Surp: 0  
Hugepagesize: 2048 kB  
Hugetlb: 0 kB  
DirectMap4k: 366260 kB  
DirectMap2M: 6709248 kB  
DirectMap1G: 26214400 kB

---

<div class="post-metadata">

**Author:** ![BenMcD](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/benmcd/32/188_2.png) [@BenMcD](https://chapel.discourse.group/u/BenMcD)\
**Post date:** [June 15, 2023, 9:39pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/2 "2023-06-15T21:39:47Z")

</div>

Hi Dr. Du, I have started looking into this and am confused about the data files in the `batch_cc.py` file. This file uses a path hardcoded to your home machine and I believe that I should have those files downloaded from somewhere in order to be able to run the benchmark.

Is there somewhere that I can obtain those files?

---

<div class="post-metadata">

**Author:** ![BenMcD](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/benmcd/32/188_2.png) [@BenMcD](https://chapel.discourse.group/u/BenMcD)\
**Post date:** [June 15, 2023, 9:46pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/3 "2023-06-15T21:46:23Z")

</div>

One other question: could you provide the output from running `printchplenv` in your environment?

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 15, 2023, 10:27pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/4 "2023-06-15T22:27:35Z")

</div>

I am glad to know that you are looking into it. Sorry for the confusion in the batch\_cc.py. You are right. You need to change the path based on your directory. You can download the graph file here,  
[https://suitesparse-collection-website.herokuapp.com/MM/DIMACS10/delaunay\_n20.tar.gz](https://suitesparse-collection-website.herokuapp.com/MM/DIMACS10/delaunay_n20.tar.gz)  
This is the delaunay\_n20 graph file. Of course, you can also use other mtx graph file. However, you need to : (1) delete all the comments in the original mtx file. (2) remove the first line  
1048576 1048576 3145686  
which gives the total number of vertices 1048576 and total number of edges 3145686 (3) convert the edge list file to adj file by executing  
./snap\_converter -i edglistfile -o adjfile

It's highly possible I missed something in the document and this may cause you cannot run it correctly. So, please just let me know when you have any problems with this test.

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 15, 2023, 10:38pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/5 "2023-06-15T22:38:03Z")

</div>

> [@BenMcD](#):
>
> `printchplenv`

Please see the results of printchplenv

(arkouda-dev) duzh@alex:~/arkouda$ printchplenv  
machine info: Linux alex 5.19.0-43-generic #44~22.04.1-Ubuntu SMP PREEMPT\_DYNAMIC Mon May 22 13:39:36 UTC 2 x86\_64  
CHPL\_HOME: /home/duzh/chapel-1.29.0 \*  
script location: /home/duzh/chapel-1.29.0/util/chplenv  
CHPL\_TARGET\_PLATFORM: linux64  
CHPL\_TARGET\_COMPILER: llvm  
CHPL\_TARGET\_ARCH: x86\_64  
CHPL\_TARGET\_CPU: native \*  
CHPL\_LOCALE\_MODEL: flat  
CHPL\_COMM: gasnet \*  
CHPL\_COMM\_SUBSTRATE: udp \*  
CHPL\_GASNET\_SEGMENT: everything  
CHPL\_TASKS: qthreads \*  
CHPL\_LAUNCHER: amudprun \*  
CHPL\_TIMERS: generic  
CHPL\_UNWIND: none  
CHPL\_MEM: jemalloc \*  
CHPL\_ATOMICS: cstdlib  
CHPL\_NETWORK\_ATOMICS: none  
CHPL\_GMP: bundled \*  
CHPL\_HWLOC: bundled \*  
CHPL\_RE2: bundled  
CHPL\_LLVM: bundled \*  
CHPL\_AUX\_FILESYS: none

---

<div class="post-metadata">

**Author:** ![BenMcD](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/benmcd/32/188_2.png) [@BenMcD](https://chapel.discourse.group/u/BenMcD)\
**Post date:** [June 15, 2023, 10:57pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/6 "2023-06-15T22:57:53Z")

</div>

Thanks for the quick response! It looks like you have `CHPL_COMM=gasnet` set, which is going to cause your single locale (i.e., running with `-nl 1`) programs to run much slower. Could you rebuild your `chpl` compiler with `CHPL_COMM=none` set, recompile Arkouda, and then regather these numbers? I would expect a significant improvement in performance with just that change.

That should look something like:

1. `export CHPL_COMM=none`
2. cd `$CHPL_HOME`
3. `make -j 8`
4. recompile Arkouda/Arkouda NJIT

Based on the system information above, it doesn't look like you are running on a distributed system, so I would not recommend setting `CHPL_COMM=gasnet` except for very specific situations (which does not include performance runs). In general, `CHPL_COMM` should only be set to `gasnet` when trying to run multi-locale Chapel programs, so you may want to modify your `.bashrc` or however that variable is being set in your environment to avoid having that set automatically.

One other environment-related thing to check would be to ensure that `ARKOUDA_QUICK_COMPILE` or `ARKOUDA_DEVELOPER` are not set, as these will disable optimizations if set when building Arkouda, which would cause much slower performance.

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 16, 2023, 1:11am UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/7 "2023-06-16T01:11:49Z")

</div>

Thanks and I will recompile it and check the performance.

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 17, 2023, 4:02pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/8 "2023-06-17T16:02:17Z")

</div>

> [@zhihuidu](#):
>
> --ak\_loc=/complete/path/to/arkouda/ --pkg\_path=/complete/path/to/arkouda\_njit/arachne\_development/ | bash

My computer is overclocked and I disabled the turbo boost. I retested them, and please see the following results.  
For shared memory configuration CHPL\_COMM=none,

2023-06-17:11:43:58 [CCMsg] segCCMsg Line 2390 DEBUG [Chapel] Time elapsed for fast sv dist cc: 0.059391  
2023-06-17:11:43:58 [CCMsg] segCCMsg Line 2418 DEBUG [Chapel] Time elapsed for fs dist cc: 0.00659

For multilocale configuration CHPL\_COMM=gasnet  
2023-06-17:09:52:10 [CCMsg] segCCMsg Line 2390 DEBUG [Chapel] Time elapsed for fast sv dist cc: 0.201416  
2023-06-17:09:52:11 [CCMsg] segCCMsg Line 2418 DEBUG [Chapel] Time elapsed for fs dist cc: 0.025898

The speedup is about 0.025895/0.00659=3.929 and 0.201416/0.059391=3.391

Yes, just as you said before, the performance has significant improvement. Thanks for letting me know this.

---

<div class="post-metadata">

**Author:** ![BenMcD](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/benmcd/32/188_2.png) [@BenMcD](https://chapel.discourse.group/u/BenMcD)\
**Post date:** [June 20, 2023, 4:11pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/9 "2023-06-20T16:11:11Z")

</div>

Great, glad to hear that helped out. So, what is the Chapel vs C++ comparison at this point? Is Chapel still behind C++? I have still not been able to run this myself; it seems that the `batch_cc.py` file requires many files, not just the one that you provided the installation for and I am also unsure of what the `snap_converter` program is that you are executing and wasn't able to easily figure that out with a google search.

Are you running your test with all of the lines deleted except for the `[3145686,1048576,2,0,HomeDir+"Adata/Delaunay/delaunay_n20/delaunay_n20.mtx.pr"]` line, or are you running with all of the files? Can you provide a link for the `snap_converter` program?

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 20, 2023, 5:15pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/10 "2023-06-20T17:15:55Z")

</div>

The gbbs package performance in C++ for the same input graph is as follows.  
{  
"test\_type": "static\_connectivity\_result",  
"test\_name" : "contour; no\_sampling",  
"graph" : "./inputs/graphs/edge\_streams\_coo/delaunay\_n20.adj",  
"rounds" : 10,  
"medt" : 0.017801,  
"mint" : 0.01715,  
"maxt" : 0.019555  
}  
The average time is 0.017801. Although Chapel is a little bit worse than gbbs, it is very close to the c++ performance.  
Yes, batch\_cc.py will test many input graphs. You can just keep anyone you want to test. Currently, I only test delaunay\_n20 to check the performance results.

Here is the converter program [gbbs/utils/snap\_converter.cc at master · zhihuidu/gbbs · GitHub](https://github.com/zhihuidu/gbbs/blob/master/utils/snap_converter.cc)  
You just need to run  
make  
under the utils directory to generate the program.

Please let me know if you have any questions about the test. Thanks!

---

<div class="post-metadata">

**Author:** ![BenMcD](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/benmcd/32/188_2.png) [@BenMcD](https://chapel.discourse.group/u/BenMcD)\
**Post date:** [June 21, 2023, 10:29pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/11 "2023-06-21T22:29:19Z")

</div>

Though you seemed reasonably satisfied with where this stands after changing to `CHPL_COMM=none`, I decided to put a bit more time into it to see whether I could reproduce your results. I'm about to time out on this effort, but wanted to capture what I was and was not able to accomplish:

1. I was not able to build the C++ code, seeing errors related to pathing (I believe paths relative to your machine, such as `bridge.h:9:10: fatal error: parlay/delayed_sequence.h: No such file or directory`)
2. I was not able to preprocess the data using `snap_converter` due to similar build issues
3. I was able to run the Chapel code using only the `delaunay_n20.mtx` file, though, I'm unsure if it is the correct output, given the lack of preprocessing
4. I was unable to determine if I was running in the same way because I had to modify the scripts in order to get things to run

So, I have some Chapel numbers, but I am unsure if they were collected correctly and am also unsure how to interpret the data and am unable to collect corresponding C++ data to compare against.

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [June 21, 2023, 10:53pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/12 "2023-06-21T22:53:56Z")

</div>

> [@zhihuidu](#):
>
> git submodule update --init

1 About the C++ package compiling error, please check if you have executed this step  
git submodule update --init  
After you git clone the gbbs package , you need to enter the gbbs directory and run the above git command to download the paylay package. I could not compile it either before and then I found that I missed the above step.

2 I guess it is the same reason.

3 If you use mtx file, please replace the  
njit.graph\_file\_read in for example

> <https://github.com/Bears-R-Us/arkouda-njit/blob/main/arachne_development/test/client/benchmarks/batch_cc.py#L80>

with  
njit.graph\_file\_read\_mtx  
I preprocess the mtx files and only include the edge list. You need to use graph\_file\_read\_mtx if you directly use the mtx input file.

4 I think it's ok to change the script.

---

<div class="post-metadata">

**Author:** ![zhihuidu](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/zhihuidu/32/436_2.png) [@zhihuidu](https://chapel.discourse.group/u/zhihuidu)\
**Post date:** [July 18, 2023, 4:34pm UTC](https://chapel.discourse.group/t/chapel-and-c-c-performance-difference/23432/13 "2023-07-18T16:34:33Z")

</div>

Hi, Ben, Please see the following latest testing results. After accepting your suggestion, now I have achieved much better results.  
I cannot upload the file so I just copy the results for your reference here.

| Graph Name | Graph ID | Number of Edges | Number of Vertices | Chapel Implementation(s) | gbbs package-C++(s) | slowdown |
| --- | --- | --- | --- | --- | --- | --- |
| ca-GrQc | 0 | 28980 | 5242 | 0.000264 | 0.000324 | 0.814814815 |
| ca-HepTh | 1 | 51971 | 9877 | 0.000323 | 0.000397 | 0.813602015 |
| facebook\_combined | 2 | 88234 | 4039 | 0.000243 | 5.60E-05 | 4.339285714 |
| wiki | 3 | 103689 | 8277 | 0.000339 | 0.000175 | 1.937142857 |
| as-caida20071105 | 4 | 106762 | 26475 | 0.000536 | 0.00015 | 3.573333333 |
| ca-CondMat | 5 | 186936 | 23133 | 0.000583 | 0.000658 | 0.886018237 |
| ca-HepPh | 6 | 237010 | 12008 | 0.000567 | 0.0006145 | 0.922701383 |
| email-Enron | 7 | 367662 | 36692 | 0.000651 | 0.0006645 | 0.979683973 |
| ca-AstroPh | 8 | 396160 | 18772 | 0.000534 | 0.0007255 | 0.736044108 |
| loc-brightkite\_edges | 9 | 428156 | 58228 | 0.000975 | 0.00056 | 1.741071429 |
| soc-Epinions1 | 10 | 508837 | 75879 | 0.001538 | 0.000789 | 1.949302915 |
| com-dblp | 11 | 1049866 | 317080 | 0.008095 | 0.0014275 | 5.670753065 |
| com-youtube | 12 | 2987624 | 1134890 | 0.025637 | 0.0035885 | 7.144210673 |
| amazon0601 | 13 | 2443408 | 403394 | 0.008375 | 0.003014 | 2.778699403 |
| soc-LiveJournal1 | 14 | 68993773 | 4847571 | 0.20743 | 0.040581 | 5.111505384 |
| higgs-social\_network | 15 | 14855842 | 456626 | 0.024719 | 0.004915 | 5.029298067 |
| com-orkut | 16 | 117185083 | 3072441 | 0.262083 | 0.027512 | 9.526134051 |
| road\_usa | 17 | 28854312 | 23947347 | 0.193439 | 0.076205 | 2.538402992 |
| kmer\_A2a | 18 | 180292586 | 170728175 | 2.09394 | 0.54448 | 3.845761093 |
| kmer\_V1r | 19 | 232705452 | 214005017 | 2.7466 | 0.61255 | 4.483878867 |
| uk-2002 | 20 | 298113762 | 18520486 | 0.369062 | 0.56479 | 0.653449955 |
| delaunay\_n10 | 21 | 3056 | 1024 | 0.000109 | 8.90E-05 | 1.224719101 |
| delaunay\_n11 | 22 | 6127 | 2048 | 0.000109 | 0.000109 | 1 |
| delaunay\_n12 | 23 | 12264 | 4096 | 0.000172 | 0.000123 | 1.398373984 |
| delaunay\_n13 | 24 | 24547 | 8192 | 0.000202 | 0.000137 | 1.474452555 |
| delaunay\_n14 | 25 | 49122 | 16384 | 0.000287 | 0.000184 | 1.559782609 |
| delaunay\_n15 | 26 | 98274 | 32768 | 0.000462 | 0.0002745 | 1.683060109 |
| delaunay\_n16 | 27 | 196575 | 65536 | 0.000876 | 0.000438 | 2 |
| delaunay\_n17 | 28 | 393176 | 131072 | 0.001228 | 0.000639 | 1.921752739 |
| delaunay\_n18 | 29 | 786396 | 262144 | 0.00245 | 0.000929 | 2.637244349 |
| delaunay\_n19 | 30 | 1572823 | 524288 | 0.003442 | 0.0018515 | 1.859033216 |
| delaunay\_n20 | 31 | 3145686 | 1048576 | 0.00864 | 0.0034375 | 2.513454545 |
| delaunay\_n21 | 32 | 6291408 | 2097152 | 0.014191 | 0.006838 | 2.075314419 |
| delaunay\_n22 | 33 | 12582869 | 4194304 | 0.033228 | 0.01365 | 2.434285714 |
| delaunay\_n23 | 34 | 25165784 | 8388608 | 0.065764 | 0.027456 | 2.395250583 |
| delaunay\_n24 | 35 | 50331601 | 16777216 | 0.142013 | 0.056348 | 2.52028466 |
| | | | | | average= | 2.615891748 |
