peregrine-2021 icon indicating copy to clipboard operation
peregrine-2021 copied to clipboard

Peregrine fails when you use more than 99 threads

Open hoppo opened this issue 2 years ago • 3 comments

Hi,

I noticed that if you use more than 99 threads (and hence chunks), then peregrine fails. The responsible code is:- let filename = format!("{}-??-of-??.dat", shmmr_index_file_prefix);

Although the code will generate .dat files greater than 99 (eg reads-shmr-01-of-128.dat), it will fail when it tries to read these as the regular expression above can never be correct.

hoppo avatar Mar 01 '22 15:03 hoppo

@hoppo thanks. is that the only error you see? I can make the "??" to become "???". I do not anticipate people using that many threads :) Do you use a machine with 128 physical cores?

cschin avatar Mar 16 '22 00:03 cschin

@hoppo can you test it out by building a new set of binaries from the main branch?

cschin avatar Mar 16 '22 15:03 cschin

A two year old two socket machine I use has 128 cores / 256 threads. Next year 128 core CPUs (256 threads) are expected and 4 to 8 sockets are easily possible. There are architectures that have more unified Cores and once you go MPI you get into millions of cores.

As you are about to change it, 4 digits would be much better imho.

For MPI you could add hostname or some other machine identifier.

ahcm avatar Nov 03 '22 18:11 ahcm