ENHANCE-PET / FALCON

FALCON is a Python-based software application designed to facilitate PET motion correction, both for head and total-body scans. Our program is built around the fast 'greedy' registration toolkit, which serves as the registration engine. With FALCON, users can enjoy a streamlined experience for implementing motion correction.
GNU General Public License v3.0
36 stars 6 forks source link

Replace falconz_linux_x86_64 Clang-Compiled Binaries with GCC-Compiled Binaries for Improved Performance #50

Closed LalithShiyam closed 9 months ago

LalithShiyam commented 9 months ago

Issue Description:

Summary:

The falconz package uses pre-compiled binaries to offer cross-platform support. However, it has come to our attention that the performance of falconz_linux_x86_64, which is compiled with Clang, is significantly slower when run on systems where the compiler is GCC.

Steps to Reproduce:
  1. Install falconz on a Linux x86_64 machine where the default compiler is GCC.
  2. Run falconz
  3. Observe slower execution times compared to when a GCC-compiled binary is used.
Expected Results:

The package should run efficiently irrespective of the underlying compiler used on the host system.

Actual Results:

Slower performance when using Clang-compiled falconz_linux_x86_64 binary on a GCC-based Linux system.

Additional Information:

When the Clang-compiled binary was replaced locally with a GCC-compiled binary, performance improved significantly.

Suggested Solutions:

  1. Replace the pre-compiled falconz_linux_x86_64 Clang binaries stored on the cloud with GCC-compiled binaries.
  2. Update documentation to indicate the use of GCC-compiled binaries for Linux x86_64 systems.
  3. Add runtime checks or package configuration to allow users to specify their preferred compiler, if possible.

Acceptance Criteria:

LalithShiyam commented 9 months ago

As of now I have replaced the clang binaries with gcc binaries for linux. The speed test says indeed gcc precompiled binary is faster. Hopefully I come up with a better solution.