Skip to content

Commit 72300fe

Browse files
committed
examples/deepzoom: parallelize deepzoom_tile to available CPUs
On Python 3.13+, and on all Python versions on Linux, set the default job count to the number of available CPUs. Otherwise, default to 4 jobs as before. Signed-off-by: Benjamin Gilbert <[email protected]>
1 parent 803b409 commit 72300fe

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

examples/deepzoom/deepzoom_tile.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,19 @@ def _shutdown(self) -> None:
382382

383383

384384
if __name__ == '__main__':
385+
try:
386+
# Python 3.13+
387+
available_cpus = os.process_cpu_count() # type: ignore[attr-defined]
388+
except AttributeError:
389+
try:
390+
# Linux
391+
available_cpus = len(
392+
os.sched_getaffinity(0) # type: ignore[attr-defined,unused-ignore]
393+
)
394+
except AttributeError:
395+
# default
396+
available_cpus = 4
397+
385398
parser = ArgumentParser(usage='%(prog)s [options] <SLIDE>')
386399
parser.add_argument(
387400
'-B',
@@ -433,8 +446,8 @@ def _shutdown(self) -> None:
433446
metavar='COUNT',
434447
dest='workers',
435448
type=int,
436-
default=4,
437-
help='number of worker processes to start [4]',
449+
default=available_cpus,
450+
help=f'number of worker processes to start [{available_cpus}]',
438451
)
439452
parser.add_argument(
440453
'-o',

0 commit comments

Comments
 (0)