Skip to content

Commit 95171c8

Browse files
authored
Output ordering changed, performance improvements
* Different ordering of assignments in the output file (clusters decreasingly by size, elements within clusters decreasingly by representativeness). * Improved I/O performance. * Added support of multithreading at some stages (-t option).
1 parent d461ce6 commit 95171c8

File tree

96 files changed

+56647
-54294
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+56647
-54294
lines changed

.github/workflows/large.yml

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
########################################################################################
99
checkout:
1010
name: Checkout
11-
runs-on: [self-hosted, clusty, x64_linux, large]
11+
runs-on: [self-hosted, x64_linux, large]
1212

1313
steps:
1414
- name: clean
@@ -31,7 +31,7 @@ jobs:
3131
strategy:
3232
matrix:
3333
compiler: [14]
34-
runs-on: [self-hosted, clusty, x64_linux, large]
34+
runs-on: [self-hosted, x64_linux, large]
3535

3636
steps:
3737
- name: make
@@ -40,18 +40,51 @@ jobs:
4040
run: ./bin/clusty --help
4141

4242
########################################################################################
43-
clustering:
44-
name: clustering
43+
imgvr-variants:
44+
name: IMGVR clustering variants
4545
needs: make
4646
strategy:
4747
fail-fast: false
4848
matrix:
49-
dataset: [ICTV, IMGVR, IMGVR_HQ]
49+
variant: ['numeric']
50+
threads: [4,8,16]
51+
include:
52+
- {variant: 'numeric', args: '--numeric-ids --id-cols qidx ridx'}
53+
- {variant: 'numeric.reps', args: '--numeric-ids --id-cols qidx ridx --out-representatives', threads: 16}
54+
- {variant: 'numeric.objs', args: '--numeric-ids --id-cols qidx ridx --objects-file ${INPUT_DIR}/${DATASET}.ani.ids.tsv', threads: 16}
55+
- {variant: 'numeric.objs.reps', args: '--numeric-ids --id-cols qidx ridx --objects-file ${INPUT_DIR}/${DATASET}.ani.ids.tsv --out-representatives', threads: 16}
56+
57+
env:
58+
INPUT_DIR: ../../../../clusty/input
59+
TEMP_DIR: ../../../../clusty/temp
60+
REF_DIR: ../../../../clusty/ref
61+
DATASET: IMGVR.fraction_02
62+
63+
runs-on: [self-hosted, x64_linux, large]
64+
65+
steps:
66+
- name: cluster
67+
run: /usr/bin/time -v ./bin/clusty -t ${{ matrix.threads }} ${INPUT_DIR}/${DATASET}.ani.tsv ${TEMP_DIR}/IMGVR.${{ matrix.variant }}.clusty ${{ matrix.args }} --similarity --distance-col ani --min ani 0.95 --min qcov 0.85
68+
- name: md5
69+
run: md5sum ${TEMP_DIR}/IMGVR.${{ matrix.variant }}.clusty
70+
# - name: python compare
71+
# run: python3 ./test/cmp.py ${TEMP_DIR}/IMGVR.${{ matrix.variant }}.clusty ${REF_DIR}/IMGVR.${{ matrix.variant }}.clusty
72+
- name: binary compare
73+
run: cmp ${TEMP_DIR}/IMGVR.${{ matrix.variant }}.clusty ${REF_DIR}/IMGVR.${{ matrix.variant }}.clusty
74+
75+
########################################################################################
76+
all-algos:
77+
name: Clustering algorithms
78+
needs: imgvr-variants
79+
strategy:
80+
fail-fast: false
81+
matrix:
82+
dataset: [ICTV, IMGVR]
5083
algo_name: [single, complete, set-cover, uclust, cd-hit, leiden_07, leiden_10]
5184
include:
5285
- {dataset: ICTV, variant_name: full, args: '--numeric-ids --similarity --distance-col tani --min tani 0.95'}
5386
- {dataset: IMGVR, variant_name: fraction_02, args: '--numeric-ids --similarity --distance-col ani --min ani 0.95 --min qcov 0.85'}
54-
- {dataset: IMGVR_HQ, variant_name: full, args: '--numeric-ids --similarity --distance-col ani --min ani 0.95 --min qcov 0.85'}
87+
# - {dataset: IMGVR_HQ, variant_name: full, args: '--numeric-ids --similarity --distance-col ani --min ani 0.95 --min qcov 0.85'}
5588
- {algo_name: single, algo_cmd: single}
5689
- {algo_name: complete, algo_cmd: complete}
5790
- {algo_name: set-cover, algo_cmd: set-cover}
@@ -65,12 +98,15 @@ jobs:
6598
TEMP_DIR: ../../../../clusty/temp
6699
REF_DIR: ../../../../clusty/ref
67100

68-
runs-on: [self-hosted, clusty, x64_linux, large]
101+
runs-on: [self-hosted, x64_linux, large]
69102

70103
steps:
71104
- name: cluster
72105
run: /usr/bin/time -v ./bin/clusty ${INPUT_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.ani.tsv --objects-file ${INPUT_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.ani.ids.tsv ${TEMP_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty --algo ${{ matrix.algo_cmd }} ${{ matrix.args }}
73-
- name: compare
106+
- name: md5
107+
run: md5sum ${TEMP_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty
108+
# - name: python compare
109+
# run: python3 ./test/cmp.py ${TEMP_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty ${REF_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty
110+
- name: binary compare
74111
run: cmp ${TEMP_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty ${REF_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty
75-
- name: python compare
76-
run: python3 ./test/cmp.py ${TEMP_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty ${REF_DIR}/${{ matrix.dataset }}.${{ matrix.variant_name }}.${{ matrix.algo_name }}.clusty
112+

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
cp ./bin/clusty ./clusty-${{matrix.compiler}}
4646
gmake clean
4747
- name: tar artifacts
48-
run: tar -cvf clusty.tar ./clusty-${{matrix.compiler}} ./test/cmp.py ./test/vir61.*
48+
run: tar -cvf clusty.tar ./clusty-${{matrix.compiler}} ./test/cmp.py ./test/vir61/vir61.*
4949

5050
- uses: actions/upload-artifact@v4
5151
with:
@@ -83,6 +83,6 @@ jobs:
8383

8484
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, reordered columns)
8585
run: |
86-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}} --out-representatives
87-
python ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
86+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}} --out-representatives
87+
python ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
8888

.github/workflows/self-hosted.yml

Lines changed: 81 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -53,23 +53,24 @@ jobs:
5353

5454
steps:
5555
- name: make
56-
run: |
57-
gmake -j32 CXX=g++-${{matrix.compiler}} CC=gcc-${{matrix.compiler}} PLATFORM=${{ matrix.platform }} LEIDEN=true STATIC_LINK=true
58-
cp ./bin/clusty ./clusty-${{matrix.compiler}}
59-
gmake clean
56+
run: gmake -j32 CXX=g++-${{matrix.compiler}} CC=gcc-${{matrix.compiler}} PLATFORM=${{ matrix.platform }} LEIDEN=true STATIC_LINK=true
57+
- name: copy executable
58+
run: cp ./bin/clusty ./clusty-${{matrix.compiler}}
59+
- name: clean
60+
run: gmake clean
61+
6062

6163
########################################################################################
62-
toy:
63-
name: Toy example
64+
synth:
65+
name: Synthetic example
6466
needs: make
6567
strategy:
6668
fail-fast: false
6769
matrix:
68-
algo: [single]
6970
machine: [x64_linux, x64_mac, arm64_linux, arm64_mac]
7071
compiler: [11, 12]
7172
include:
72-
- {algo: single, machine: x64_linux, compiler: 14}
73+
- {machine: x64_linux, compiler: 14}
7374

7475
runs-on: [self-hosted, clusty, '${{ matrix.machine }}']
7576

@@ -78,16 +79,49 @@ jobs:
7879
run: ./clusty-${{matrix.compiler}}
7980
- name: version
8081
run: ./clusty-${{matrix.compiler}} --version
81-
- name: ${{matrix.algo}} (no representatives, numeric ids, singletons in object file)
82+
83+
84+
- name: numeric, w/o representatives, w/o objects
8285
run: |
83-
./clusty-${{matrix.compiler}} --objects-file ./test/toy.ids.tsv --algo ${{matrix.algo}} --id-cols idx1 idx2 --distance-col tani --similarity --numeric-ids --min tani 0.95 ./test/toy.ani.tsv toy.${{matrix.algo}}.tsv
84-
python3 ./test/cmp.py toy.${{matrix.algo}}.tsv ./test/toy.${{matrix.algo}}.tsv
85-
86-
########################################################################################
87-
86+
./clusty-${{matrix.compiler}} --id-cols id1 id2 --distance-col ani --similarity --min ani 0.70 --numeric-ids ./test/synth/synth.ani numeric.clusty
87+
cmp ./test/synth/numeric.clusty numeric.clusty
88+
- name: numeric, w/o representatives, w/ objects
89+
run: |
90+
./clusty-${{matrix.compiler}} --id-cols id1 id2 --distance-col ani --similarity --min ani 0.70 --numeric-ids ./test/synth/synth.ani numeric.objs.clusty --objects-file ./test/synth/synth.ids
91+
cmp ./test/synth/numeric.objs.clusty numeric.objs.clusty
92+
- name: numeric, w/ representatives, w/o objects
93+
run: |
94+
./clusty-${{matrix.compiler}} --id-cols id1 id2 --distance-col ani --similarity --min ani 0.70 --numeric-ids ./test/synth/synth.ani numeric.reps.clusty --out-representatives
95+
cmp ./test/synth/numeric.reps.clusty numeric.reps.clusty
96+
- name: numeric, w/ representatives, w/ objects
97+
run: |
98+
./clusty-${{matrix.compiler}} --id-cols id1 id2 --distance-col ani --similarity --min ani 0.70 --numeric-ids ./test/synth/synth.ani numeric.objs.reps.clusty --objects-file ./test/synth/synth.ids --out-representatives
99+
cmp ./test/synth/numeric.objs.reps.clusty numeric.objs.reps.clusty
100+
101+
102+
- name: named, w/o representatives, w/o objects
103+
run: |
104+
./clusty-${{matrix.compiler}} --id-cols name1 name2 --distance-col ani --similarity --min ani 0.70 ./test/synth/synth.ani named.clusty
105+
cmp ./test/synth/named.clusty named.clusty
106+
- name: named, w/o representatives, w/ objects
107+
run: |
108+
./clusty-${{matrix.compiler}} --id-cols name1 name2 --distance-col ani --similarity --min ani 0.70 ./test/synth/synth.ani named.objs.clusty --objects-file ./test/synth/synth.ids
109+
cmp ./test/synth/named.objs.clusty named.objs.clusty
110+
- name: named, w/ representatives, w/o objects
111+
run: |
112+
./clusty-${{matrix.compiler}} --id-cols name1 name2 --distance-col ani --similarity --min ani 0.70 ./test/synth/synth.ani named.reps.clusty --out-representatives
113+
cmp ./test/synth/named.reps.clusty named.reps.clusty
114+
- name: named, w/ representatives, w/ objects
115+
run: |
116+
./clusty-${{matrix.compiler}} --id-cols name1 name2 --distance-col ani --similarity --min ani 0.70 ./test/synth/synth.ani named.objs.reps.clusty --objects-file ./test/synth/synth.ids --out-representatives
117+
cmp ./test/synth/named.objs.reps.clusty named.objs.reps.clusty
118+
119+
120+
########################################################################################
121+
88122
vir61-linkage:
89123
name: Vir61
90-
needs: toy
124+
needs: synth
91125
strategy:
92126
fail-fast: false
93127
matrix:
@@ -104,14 +138,19 @@ jobs:
104138
runs-on: [self-hosted, clusty, '${{ matrix.machine }}']
105139

106140
steps:
107-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, reordered columns)
141+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/o representatives, reordered columns)
142+
run: |
143+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}}
144+
python3 ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
145+
146+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/ representatives, reordered columns)
108147
run: |
109-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}} --out-representatives
110-
python3 ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}} ./test/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
148+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/vir61/vir61.list --similarity --min ani 0.${{matrix.threshold}} --id-cols id2 id1 --distance-col ani ./test/vir61/vir61.ani vir61.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
149+
python3 ./test/cmp.py vir61.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/vir61/vir61.${{matrix.algo}}.${{matrix.threshold}}.python.csv
111150
112151
########################################################################################
113152
ictv-linkage:
114-
name: ICTV (single and complete versus python clusterings)
153+
name: ICTV python ref
115154
needs: vir61-linkage
116155
strategy:
117156
fail-fast: false
@@ -129,35 +168,36 @@ jobs:
129168
runs-on: [self-hosted, clusty, '${{ matrix.machine }}']
130169

131170
steps:
132-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives)
171+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/o representatives)
133172
run: |
134-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
135-
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
173+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
174+
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
136175
137-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives)
176+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/ representatives)
138177
run: |
139-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
140-
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
178+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
179+
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
141180
142-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives, numeric ids)
181+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/o representatives, numeric ids)
143182
run: |
144-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.num --numeric-ids
145-
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
183+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.num --numeric-ids
184+
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.num ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
146185
147-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, numeric ids)
186+
- name: ${{matrix.algo}}, ${{matrix.threshold}} (w/ representatives, numeric ids)
148187
run: |
149-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
150-
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
188+
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
189+
python3 ./test/cmp.py ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.python.csv
151190
152191
########################################################################################
153192
ictv-all:
154-
name: ICTV (all algos versus our clusterings)
193+
name: ICTV all algos
155194
needs: ictv-linkage
156195
strategy:
157196
fail-fast: false
158197
matrix:
159198
algo: [single, complete, uclust, set-cover, cd-hit, leiden]
160199
threshold: [70]
200+
threads: [4, 8, 16]
161201
machine: [x64_linux, x64_mac, arm64_linux, arm64_mac]
162202
compiler: [12]
163203
include:
@@ -171,17 +211,17 @@ jobs:
171211
runs-on: [self-hosted, clusty, '${{ matrix.machine }}']
172212

173213
steps:
174-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (no representatives)
214+
- name: ${{matrix.algo}}, ${{matrix.threshold}}, ${{matrix.threads}} threads (no representatives)
175215
run: |
176-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
177-
cmp ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.csv
216+
./clusty-${{matrix.compiler}} -t ${{matrix.threads}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}
217+
cmp ictv.${{matrix.algo}}.${{matrix.threshold}} ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.csv
178218
179-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives)
219+
- name: ${{matrix.algo}}, ${{matrix.threshold}}, ${{matrix.threads}} threads (with representatives)
180220
run: |
181-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
182-
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
221+
./clusty-${{matrix.compiler}} -t ${{matrix.threads}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.ani ictv.${{matrix.algo}}.${{matrix.threshold}}.reps --out-representatives
222+
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
183223
184-
- name: ${{matrix.algo}}, ${{matrix.threshold}} (with representatives, numeric ids)
224+
- name: ${{matrix.algo}}, ${{matrix.threshold}}, ${{matrix.threads}} threads (with representatives, numeric ids)
185225
run: |
186-
./clusty-${{matrix.compiler}} --algo ${{matrix.algo}} --objects-file ./test/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
187-
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv
226+
./clusty-${{matrix.compiler}} -t ${{matrix.threads}} --algo ${{matrix.algo}} --objects-file ./test/ictv/ictv.list --similarity --min ani 0.${{matrix.threshold}} ./test/ictv/ictv.num ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num --out-representatives --numeric-ids
227+
cmp ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.num ./test/ictv/ictv.${{matrix.algo}}.${{matrix.threshold}}.reps.csv

0 commit comments

Comments
 (0)