{"id":920,"date":"2026-09-03T15:39:33","date_gmt":"2026-09-03T13:39:33","guid":{"rendered":"https:\/\/radwaytech.com\/?p=920"},"modified":"2026-09-03T15:47:30","modified_gmt":"2026-09-03T13:47:30","slug":"benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer","status":"publish","type":"post","link":"https:\/\/radwaytech.com\/hu\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/","title":{"rendered":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">We have built a benchmark suite to comparatively assess the performance of the <a href=\"https:\/\/diamondlightsource.github.io\/httomo\/\">httomo<\/a>, <a href=\"https:\/\/www.silx.org\/pub\/nabu\/doc\/\">Nabu<\/a> and <a href=\"https:\/\/tomocupy.readthedocs.io\/en\/latest\/\">TomoCuPy<\/a> computed tomography toolkits. The executed pipelines are matching in the input data, algorithms and parameters, therefore the benchmarks are suitable to compare the resource utilization and efficiency of each toolkit. For reproducibility and potential spinoff work, the suite was made <a href=\"https:\/\/github.com\/RadWay-Tech-Services\/tomography-benchmarks\">publicly available on GitHub<\/a>. We hope that the members of the open-source tomography software community find this work interesting and informative. It was definitely a worthy learning experience for us.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The benchmark suite is composed of the following parts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Definition of a common Python environment which accommodates all three toolkits<\/li>\n\n\n\n<li>A tool to generate input data suitable for all three toolkits<\/li>\n\n\n\n<li>Pipeline definitions that match features and configuration between the toolkits<\/li>\n\n\n\n<li>An Apptainer\/Singularity container definition to build a container image containing the environment<\/li>\n\n\n\n<li>SLURM scripts to execute the reconstruction jobs on the Komondor cluster<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Common Python environment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The specification of the Conda environment <a href=\"https:\/\/github.com\/RadWay-Tech-Services\/tomography-benchmarks\/blob\/a980a368e94a94524f8c70b3acbc4edfcd6fe4b3\/environment.yml\">can be found in the repository<\/a>. It contains the dependencies for all three benchmarked toolkits. We found it important to use the same environment in all benchmarks, to exclude the potential performance impact of a different stack. Notable dependencies include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>python=3.12<\/li>\n\n\n\n<li>numpy=2.4<\/li>\n\n\n\n<li>cuda-version=12.9<\/li>\n\n\n\n<li>cupy=14.0.1<\/li>\n\n\n\n<li>openmpi=4.1.6<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, some packages were <a href=\"https:\/\/github.com\/RadWay-Tech-Services\/tomography-benchmarks\/blob\/a980a368e94a94524f8c70b3acbc4edfcd6fe4b3\/requirements.txt\">installed using pip on<\/a> top of the Conda environment. Most notably, the toolkits under benchmark were installed this way:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>httomo suite\n<ul class=\"wp-block-list\">\n<li>httomo=3.2.1<\/li>\n\n\n\n<li>httomo-backends=1.2.0<\/li>\n\n\n\n<li>httomolibgpu=5.8.1<\/li>\n\n\n\n<li>httomolib=4.2<\/li>\n\n\n\n<li>ToMoBAR=2026.3.1.0<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>nabu=2025.2.6<\/li>\n\n\n\n<li>tomocupy: Our fork based on version 1.1.0 was used, which fixes a problem in the log-polar reconstruction<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To recreate the environment on your local machine, <code>cd<\/code> to the cloned repository root, and invoke the following command. By default, this overwrites the Conda environment named <code>tomobenchmarks<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ just recreate-env<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To build an Apptainer\/Singularity image containing the dependencies and toolkits, execute the following. This produces the <code>tomobenchmarks.sif<\/code> image based on Ubuntu 24.04.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ apptainer --verbose build tomobenchmarks.sif tomobenchmarks.def<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Generating input data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We provide the means to generate a synthetic input data file that can be read by all three toolkits. While all of those work with the HDF5 format, the expected layout of the file is different for each. Nabu and httomo employ the NeXus standard, albeit in slightly different ways, whereas TomoCuPy is completely different. To resolve this, we provide the script <code>nxs_generator.py<\/code> that generates a HDF5 file that fulfills all toolkits&#8217; structural requirements. It is achieved using HDF5 internal links, so that the file size does not increase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The synthetic sinogram data is generated using the TomoPhantom library and depicts the well-known Shepp-Logan phantom.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"772\" src=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png\" alt=\"\" class=\"wp-image-930\" srcset=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png 1200w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-600x386.png 600w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-768x494.png 768w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1536x988.png 1536w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-2048x1318.png 2048w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-18x12.png 18w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><figcaption class=\"wp-element-caption\">Figure 1: Shepp-Logan phantom contained by a HDF5 file generated by nxs_generator.py. Displayed in the MyHDF5 viewer<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Two input sizes are defined for the benchmarks on synthetic data. The file <code>synthetic.nx<\/code> contains 1 GiB of data and is suitable to be processed on most workstation machines. <code>synthetic-huge.nx<\/code> is over 30 GiB in size, and is used in the multi-GPU benchmarks. Additionally, the multi-GPU benchmarks were executed on a third dataset, which is a real-world capture of a sandstone rock. This dataset can be acquired from <a href=\"https:\/\/zenodo.org\/records\/10033401\" type=\"link\" id=\"https:\/\/zenodo.org\/records\/10033401\">Zenodo.org<\/a>. The following table summarizes the properties of the three input datasets.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Filename<\/th><th class=\"has-text-align-right\" data-align=\"right\">synthetic.nx<\/th><th class=\"has-text-align-right\" data-align=\"right\">synthetic-huge.nx<\/th><th class=\"has-text-align-right\" data-align=\"right\">119647.nx<\/th><\/tr><\/thead><tbody><tr><td><strong>Data<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">Synthetic Shepp-Logan phantom<\/td><td class=\"has-text-align-right\" data-align=\"right\">Synthetic Shepp-Logan phantom<\/td><td class=\"has-text-align-right\" data-align=\"right\">Sandstone rock captured at DLS<\/td><\/tr><tr><td><strong>Format<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">uint16<\/td><td class=\"has-text-align-right\" data-align=\"right\">uint16<\/td><td class=\"has-text-align-right\" data-align=\"right\">uint16<\/td><\/tr><tr><td><strong>Detector width<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">1024<\/td><td class=\"has-text-align-right\" data-align=\"right\">2048<\/td><td class=\"has-text-align-right\" data-align=\"right\">2560<\/td><\/tr><tr><td><strong>Detector height<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">1024<\/td><td class=\"has-text-align-right\" data-align=\"right\">4096<\/td><td class=\"has-text-align-right\" data-align=\"right\">2160<\/td><\/tr><tr><td><strong>Number of angles<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">512<\/td><td class=\"has-text-align-right\" data-align=\"right\">2000<\/td><td class=\"has-text-align-right\" data-align=\"right\">1801<\/td><\/tr><tr><td><strong>Data size [GiB]<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">1<\/td><td class=\"has-text-align-right\" data-align=\"right\">31.3<\/td><td class=\"has-text-align-right\" data-align=\"right\">18.5<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table 1: Properties of the generated input data files<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To generate synthetic.nx, run the following in the repository root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ just generate-input<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To generate both synthetic datafiles, run the following in the repository root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ just generate-all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The sandstone dataset must be modified to conform to Nabu toolkit&#8217;s format standard. Importantly, the file extension must be <code>nx<\/code>. We provide a script to perform the required modifications to the file contents:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ just preprocess-dataset path\/to\/119647.nx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notably, all input and output data is read\/written to the <code>\/scratch<\/code> partition of the Komondor cluster, which is the fastest available filesystem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Benchmarks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In total, the runtime of 16 benchmark cases were measured. The following table lists all measured benchmark cases:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Toolkit<\/th><th>Input datafile<\/th><th>Pipeline<\/th><th>Hardware<\/th><\/tr><\/thead><tbody><tr><td>httomo<\/td><td>synthetic.nx<\/td><td>fbp.yaml<\/td><td>single-GPU<\/td><\/tr><tr><td>httomo<\/td><td>synthetic-huge.nx<\/td><td>fbp.yaml<\/td><td>multi-GPU<\/td><\/tr><tr><td>httomo<\/td><td>119647.nx<\/td><td>fbp.yaml<\/td><td>multi-GPU<\/td><\/tr><tr><td>httomo<\/td><td>synthetic.nx<\/td><td>fbp-preproc.yaml<\/td><td>single-GPU<\/td><\/tr><tr><td>httomo<\/td><td>synthetic-huge.nx<\/td><td>fbp-preproc.yaml<\/td><td>multi-GPU<\/td><\/tr><tr><td>httomo<\/td><td>synthetic.nx<\/td><td>lprec.yaml<\/td><td>single-GPU<\/td><\/tr><tr><td>httomo<\/td><td>synthetic-huge.nx<\/td><td>lprec.yaml<\/td><td>multi-GPU<\/td><\/tr><tr><td>httomo<\/td><td>119647.nx<\/td><td>lprec.yaml<\/td><td>multi-GPU<\/td><\/tr><tr><td>Nabu<\/td><td>synthetic.nx<\/td><td>fbp.conf<\/td><td>single-GPU<\/td><\/tr><tr><td>Nabu<\/td><td>synthetic-huge.nx<\/td><td>fbp.conf<\/td><td>multi-GPU<\/td><\/tr><tr><td>Nabu<\/td><td>119647.nx<\/td><td>fbp.conf<\/td><td>multi-GPU<\/td><\/tr><tr><td>Nabu<\/td><td>synthetic.nx<\/td><td>fbp-preproc.conf<\/td><td>single-GPU<\/td><\/tr><tr><td>Nabu<\/td><td>synthetic-huge.nx<\/td><td>fbp-preproc.conf<\/td><td>multi-GPU<\/td><\/tr><tr><td>TomoCuPy<\/td><td>synthetic.nx<\/td><td>fbp.conf<\/td><td>single-GPU<\/td><\/tr><tr><td>TomoCuPy<\/td><td>synthetic.nx<\/td><td>fbp-preproc.conf<\/td><td>single-GPU<\/td><\/tr><tr><td>TomoCuPy<\/td><td>synthetic.nx<\/td><td>lprec.conf<\/td><td>single-GPU<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table 2: List of all benchmark cases<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The performance is assessed based on the end-to-end runtime which is measured with the <code>time<\/code> command. In case of multiple MPI processes launched, the longest is considered. Since the containerized runs lack kernel caching, in each run, the pipeline was executed twice, and the second result is considered to be valid.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pipeline definitions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Three tomography pipelines are defined to be benchmarked, with their configuration files checked in to the repository. The sub-algorithms and parameters are chosen to be as close as possible across the toolkits.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FBP pipeline: reconstruction based on the filtered backprojection algorithm. No preprocessing applied.<\/li>\n\n\n\n<li>FBP-preproc pipeline: reconstruction based on the filtered backprojection algorithm. Preprocessing steps are added: median-based outlier removal, Paganin phase-retrival and Fourier-Wavelet-based stripe removal algorithm.<\/li>\n\n\n\n<li>LPRec pipeline: Log-Polar reconstruction without preprocessing. This pipeline was executed with httomo and TomoCuPy only, since this algorithm is not implemented in Nabu.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Single- and multi-GPU setups<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The measurements were conducted on the GPU partition of the Komondor supercomputer.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For the single-GPU setup, a node partition of 16 CPUs, 64 GiB of RAM and a single Nvidia A100 40 GB accelerator.<\/li>\n\n\n\n<li>The multi-GPU measurements were occupying a full node of an AMD EPYC 7763 64-core CPU, 256 GiB RAM and four A100 accelerators.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Benchmark results<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Small synthetic data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following table and figure list the benchmark execution times when using the small synthetic dataset (synthetic.nx):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Pipeline<\/th><th class=\"has-text-align-right\" data-align=\"right\">httomo<\/th><th class=\"has-text-align-right\" data-align=\"right\">nabu<\/th><th class=\"has-text-align-right\" data-align=\"right\">TomoCuPy<\/th><\/tr><\/thead><tbody><tr><td><strong>FBP<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">14.042<\/td><td class=\"has-text-align-right\" data-align=\"right\">12.291<\/td><td class=\"has-text-align-right\" data-align=\"right\">10.07<\/td><\/tr><tr><td><strong>FBP \/w preprocessing<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">20.094<\/td><td class=\"has-text-align-right\" data-align=\"right\">12.945<\/td><td class=\"has-text-align-right\" data-align=\"right\">14.006<\/td><\/tr><tr><td><strong>LPRec<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">13.667<\/td><td class=\"has-text-align-right\" data-align=\"right\">&#8211;<\/td><td class=\"has-text-align-right\" data-align=\"right\">8.634<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table 3: Pipeline execution times (seconds) for the small synthetic dataset (synthetic.nx)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic.png\" alt=\"\" class=\"wp-image-952\" srcset=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic.png 960w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-600x450.png 600w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-768x576.png 768w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-16x12.png 16w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\">Figure 2: Pipeline execution times (seconds) for the small synthetic dataset (synthetic.nx). Lower value means faster execution<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Huge synthetic data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following table and figure list the benchmark execution times when using the huge synthetic dataset (synthetic-huge.nx):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Pipeline<\/th><th class=\"has-text-align-right\" data-align=\"right\">httomo<\/th><th class=\"has-text-align-right\" data-align=\"right\">Nabu<\/th><\/tr><\/thead><tbody><tr><td><strong>FBP<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">121.758<\/td><td class=\"has-text-align-right\" data-align=\"right\">67.153<\/td><\/tr><tr><td><strong>FBP \/w preprocessing<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">209.73<\/td><td class=\"has-text-align-right\" data-align=\"right\">69.141<\/td><\/tr><tr><td><strong>LPRec<\/strong><\/td><td class=\"has-text-align-right\" data-align=\"right\">112.033<\/td><td class=\"has-text-align-right\" data-align=\"right\">&#8211;<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table 4: Pipeline execution times (seconds) for the huge synthetic dataset (synthetic-huge.nx)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-huge.png\" alt=\"\" class=\"wp-image-953\" srcset=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-huge.png 960w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-huge-600x450.png 600w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-huge-768x576.png 768w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-synthetic-huge-16x12.png 16w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\">Figure 3: Pipeline execution times (seconds) for the huge synthetic dataset (synthetic-huge.nx). Lower value means faster execution<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sandstone rock dataset<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following table and figure list the benchmark execution times when using the real-world capture of a sandstone rock (119647.nx):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Pipeline<\/th><th class=\"has-text-align-right\" data-align=\"right\">httomo<\/th><th class=\"has-text-align-right\" data-align=\"right\">Nabu<\/th><\/tr><\/thead><tbody><tr><td>FBP<\/td><td class=\"has-text-align-right\" data-align=\"right\">93.821<\/td><td class=\"has-text-align-right\" data-align=\"right\">64.503<\/td><\/tr><tr><td>LPRec<\/td><td class=\"has-text-align-right\" data-align=\"right\">74.455<\/td><td class=\"has-text-align-right\" data-align=\"right\">&#8211;<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Table 5: Pipeline execution times (seconds) for the sandstone rock dataset (119647.nx)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-119647.png\" alt=\"\" class=\"wp-image-954\" srcset=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-119647.png 960w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-119647-600x450.png 600w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-119647-768x576.png 768w, https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/09\/komondor-119647-16x12.png 16w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\">Figure 4: Pipeline execution times (seconds) for the sandstone rock dataset (119647.nx). Lower value means faster execution<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Summary of results<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this work, we applied a gray-box method in evaluating the results. We did not compare the toolkits on the source code level, though from tracing and the benchmark results some conclusions can be drawn. Also, we found a few items that can be a basis for further investigation and optimization work.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We have shown that it is possible to build a Python environment that can accommodate all three toolkits.<\/li>\n\n\n\n<li>Comparing the FBP-preprocessed results has limited explanation value. It is likely that httomo does more preprocessing work, since there is a large increase in execution time when turning it on. Whereas in the case of Nabu, the runtime doesn&#8217;t change much. It would be interesting to assess the preprocessing qualitatively, and compare the performance of the algorithmic steps individually.<\/li>\n\n\n\n<li>While previously <a href=\"https:\/\/radwaytech.com\/atomicadd-free-improvements-to-log-polar-reconstruction-gather-kernels\/\">we have shown very significant<\/a> advantage of the LPRec method versus the FBP in httomo, the above results do not reflect that. In this case, LPRec is only slightly faster than FBP. It would be interesting to re-run the same experiment on newer GPUs.<\/li>\n\n\n\n<li>In the multi-GPU benchmarks, Nabu shows a significant speed advantage over httomo. We suspect that this difference is not the result of difference in the implementation quality of the FBP compute kernels, but instead a result of architectural differences. A significant difference is that httomo spawns a process for each GPU, and coordinates the processes via MPI. This architecture is suitable for multi-node operation as well. Conversely, Nabu doesn&#8217;t support multi-node, and all GPUs are fed from a single process. Each process httomo launches executes serially, meaning that loading the data from disk blocks compute. In Nabu (and also TomoCuPy), a task-based approach is used, that achieves parallel load\/store and compute. Further investigation is required.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Acknowledgements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We acknowledge the Digital Government Development and Project Management Ltd. for awarding us access to the Komondor HPC facility based in Hungary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have built a benchmark suite to comparatively assess the performance of the httomo, Nabu and TomoCuPy computed tomography toolkits. The executed pipelines are matching in the input data, algorithms and parameters, therefore the benchmarks are suitable to compare the resource utilization and efficiency of each toolkit. For reproducibility and potential spinoff work, the suite [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-920","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer - RadwayTech Services<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/radwaytech.com\/hu\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/\" \/>\n<meta property=\"og:locale\" content=\"hu_HU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer - RadwayTech Services\" \/>\n<meta property=\"og:description\" content=\"We have built a benchmark suite to comparatively assess the performance of the httomo, Nabu and TomoCuPy computed tomography toolkits. The executed pipelines are matching in the input data, algorithms and parameters, therefore the benchmarks are suitable to compare the resource utilization and efficiency of each toolkit. For reproducibility and potential spinoff work, the suite [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/radwaytech.com\/hu\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/\" \/>\n<meta property=\"og:site_name\" content=\"RadwayTech Services\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-03T13:39:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-03T13:47:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1647\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"L\u0151rinc Serf\u0151z\u0151\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szerz\u0151:\" \/>\n\t<meta name=\"twitter:data1\" content=\"L\u0151rinc Serf\u0151z\u0151\" \/>\n\t<meta name=\"twitter:label2\" content=\"Becs\u00fclt olvas\u00e1si id\u0151\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 perc\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/\"},\"author\":{\"name\":\"L\u0151rinc Serf\u0151z\u0151\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#\\\/schema\\\/person\\\/e9165c6596767fafdaf2535422d24b30\"},\"headline\":\"Benchmarking httomo \\\/ Nabu \\\/ TomoCuPy on the Komondor supercomputer\",\"datePublished\":\"2026-09-03T13:39:33+00:00\",\"dateModified\":\"2026-09-03T13:47:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/\"},\"wordCount\":1443,\"publisher\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/image-2-1200x772.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"hu\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/\",\"url\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/\",\"name\":\"Benchmarking httomo \\\/ Nabu \\\/ TomoCuPy on the Komondor supercomputer - RadwayTech Services\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/image-2-1200x772.png\",\"datePublished\":\"2026-09-03T13:39:33+00:00\",\"dateModified\":\"2026-09-03T13:47:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#breadcrumb\"},\"inLanguage\":\"hu\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/image-2-1200x772.png\",\"contentUrl\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/image-2-1200x772.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kezd\u0151lap\",\"item\":\"https:\\\/\\\/radwaytech.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Benchmarking httomo \\\/ Nabu \\\/ TomoCuPy on the Komondor supercomputer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#website\",\"url\":\"https:\\\/\\\/radwaytech.com\\\/\",\"name\":\"Radway Tech Services\",\"description\":\"High-Performance Software for Science, Imaging &amp; Industry\",\"publisher\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/radwaytech.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hu\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#organization\",\"name\":\"RadwayTech Services\",\"url\":\"https:\\\/\\\/radwaytech.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/radwaytech.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/logo.svg\",\"width\":229,\"height\":74,\"caption\":\"RadwayTech Services\"},\"image\":{\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/istv\u00e1n-kiss-786201141\\\/\",\"https:\\\/\\\/github.com\\\/neon60\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/radwaytech.com\\\/#\\\/schema\\\/person\\\/e9165c6596767fafdaf2535422d24b30\",\"name\":\"L\u0151rinc Serf\u0151z\u0151\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hu\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g\",\"caption\":\"L\u0151rinc Serf\u0151z\u0151\"},\"url\":\"https:\\\/\\\/radwaytech.com\\\/hu\\\/author\\\/lorinc\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer - RadwayTech Services","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/radwaytech.com\/hu\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/","og_locale":"hu_HU","og_type":"article","og_title":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer - RadwayTech Services","og_description":"We have built a benchmark suite to comparatively assess the performance of the httomo, Nabu and TomoCuPy computed tomography toolkits. The executed pipelines are matching in the input data, algorithms and parameters, therefore the benchmarks are suitable to compare the resource utilization and efficiency of each toolkit. For reproducibility and potential spinoff work, the suite [&hellip;]","og_url":"https:\/\/radwaytech.com\/hu\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/","og_site_name":"RadwayTech Services","article_published_time":"2026-09-03T13:39:33+00:00","article_modified_time":"2026-09-03T13:47:30+00:00","og_image":[{"width":2560,"height":1647,"url":"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-scaled.png","type":"image\/png"}],"author":"L\u0151rinc Serf\u0151z\u0151","twitter_card":"summary_large_image","twitter_misc":{"Szerz\u0151:":"L\u0151rinc Serf\u0151z\u0151","Becs\u00fclt olvas\u00e1si id\u0151":"8 perc"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#article","isPartOf":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/"},"author":{"name":"L\u0151rinc Serf\u0151z\u0151","@id":"https:\/\/radwaytech.com\/#\/schema\/person\/e9165c6596767fafdaf2535422d24b30"},"headline":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer","datePublished":"2026-09-03T13:39:33+00:00","dateModified":"2026-09-03T13:47:30+00:00","mainEntityOfPage":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/"},"wordCount":1443,"publisher":{"@id":"https:\/\/radwaytech.com\/#organization"},"image":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#primaryimage"},"thumbnailUrl":"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png","articleSection":["Uncategorized"],"inLanguage":"hu"},{"@type":"WebPage","@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/","url":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/","name":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer - RadwayTech Services","isPartOf":{"@id":"https:\/\/radwaytech.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#primaryimage"},"image":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#primaryimage"},"thumbnailUrl":"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png","datePublished":"2026-09-03T13:39:33+00:00","dateModified":"2026-09-03T13:47:30+00:00","breadcrumb":{"@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#breadcrumb"},"inLanguage":"hu","potentialAction":[{"@type":"ReadAction","target":["https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/"]}]},{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#primaryimage","url":"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png","contentUrl":"https:\/\/radwaytech.com\/wp-content\/uploads\/2026\/08\/image-2-1200x772.png"},{"@type":"BreadcrumbList","@id":"https:\/\/radwaytech.com\/benchmarking-httomo-nabu-tomocupy-on-the-komondor-supercomputer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kezd\u0151lap","item":"https:\/\/radwaytech.com\/"},{"@type":"ListItem","position":2,"name":"Benchmarking httomo \/ Nabu \/ TomoCuPy on the Komondor supercomputer"}]},{"@type":"WebSite","@id":"https:\/\/radwaytech.com\/#website","url":"https:\/\/radwaytech.com\/","name":"Radway Tech Services","description":"High-Performance Software for Science, Imaging &amp; Industry","publisher":{"@id":"https:\/\/radwaytech.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/radwaytech.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hu"},{"@type":"Organization","@id":"https:\/\/radwaytech.com\/#organization","name":"RadwayTech Services","url":"https:\/\/radwaytech.com\/","logo":{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/radwaytech.com\/#\/schema\/logo\/image\/","url":"https:\/\/radwaytech.com\/wp-content\/uploads\/2024\/10\/logo.svg","contentUrl":"https:\/\/radwaytech.com\/wp-content\/uploads\/2024\/10\/logo.svg","width":229,"height":74,"caption":"RadwayTech Services"},"image":{"@id":"https:\/\/radwaytech.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/istv\u00e1n-kiss-786201141\/","https:\/\/github.com\/neon60"]},{"@type":"Person","@id":"https:\/\/radwaytech.com\/#\/schema\/person\/e9165c6596767fafdaf2535422d24b30","name":"L\u0151rinc Serf\u0151z\u0151","image":{"@type":"ImageObject","inLanguage":"hu","@id":"https:\/\/secure.gravatar.com\/avatar\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3c33a4f4958bf4bbae385f45e7d74df31074cbf839658140206da9d00593e701?s=96&d=mm&r=g","caption":"L\u0151rinc Serf\u0151z\u0151"},"url":"https:\/\/radwaytech.com\/hu\/author\/lorinc\/"}]}},"_links":{"self":[{"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/posts\/920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/comments?post=920"}],"version-history":[{"count":25,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/posts\/920\/revisions"}],"predecessor-version":[{"id":958,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/posts\/920\/revisions\/958"}],"wp:attachment":[{"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/media?parent=920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/categories?post=920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/radwaytech.com\/hu\/wp-json\/wp\/v2\/tags?post=920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}