TLDR: A study optimized the Fish School Behaviour (FSB) algorithm for high-performance computing on the Setonix supercomputer using OpenMP. Researchers investigated how thread counts, scheduling strategies (static, dynamic, guided), and parallel constructs (Reduction vs. Critical) impact performance. Key findings show that the Reduction Construct is generally more efficient, and dynamic/guided scheduling strategies significantly outperform static scheduling, especially with higher thread counts, leading to faster program execution for large-scale simulations.
High-performance computing (HPC) is becoming increasingly vital as scientific research and technology demand more computational power for complex, large-scale calculations. This need spans various fields, from biology and physics to meteorology and engineering, where HPC helps accelerate processes like weather forecasting and drug development.
One area benefiting from HPC is optimization techniques inspired by nature. The Fish School Behaviour (FSB) algorithm, a variation of Particle Swarm Optimization, mimics how fish search for food, guiding a group towards abundant resources. Its repetitive and computationally demanding nature makes it an excellent candidate for parallelization, a key strategy in HPC research.
This study focused on optimizing the FSB algorithm using OpenMP, a popular multi-platform API designed for parallel programming on modern multi-core processors. OpenMP is favored for its simplicity and flexibility, allowing developers to easily transform serial code into parallel code using simple directives.
The research was conducted on the Setonix supercomputing platform, a state-of-the-art resource at the University of Western Australia. Setonix’s compatibility with OpenMP made it an ideal environment for deploying and testing parallel algorithms.
Objectives of the Study
The main goal was to harness the power of the Setonix platform and OpenMP to achieve high-performance parallel optimization of the FSB algorithm, particularly for complex, recurring, and large-scale computational tasks. The researchers aimed to understand how different multi-threading aspects—such as the number of threads, scheduling strategies, and OpenMP constructs—impact program performance, specifically execution times. By conducting a series of experiments, they sought to identify patterns and strategies that could significantly improve performance.
How the Study Was Conducted
The methodology involved a series of experiments with consistent starting conditions. This included defining the initial state of fish populations, simulating a 200×200 pond environment, and setting system parameters like fish population size, initial weight, and total iterations. Key independent variables for parallelization were identified: thread count, scheduling strategy (static, dynamic, guided, runtime), block size (chunk_size for dynamic/guided scheduling), and parallel structure (reduction or critical constructs).
Three main experiments were designed:
- Experiment 1: Impact of Thread Count on Program Runtime. This explored how varying the number of threads (from 1 to 16384) affected runtime under different scheduling strategies and parallel structures.
- Experiment 2: Impact of Scheduling Strategy on Program Runtime. This examined how static, dynamic, guided, and runtime scheduling strategies, along with different chunk sizes, influenced performance at various thread counts (2, 4, and 8).
- Experiment 3: Impact of Parallel Constructs on Program Runtime. This compared the efficiency of the Reduction Construct and the Critical Partial Construct, especially in computationally intensive sections like the “eat” module of the FSB algorithm.
Key Findings and Insights
The experiments yielded several important conclusions:
Thread Count: The number of threads significantly impacts runtime. The Reduction Construct generally outperformed the Critical Construct, especially at medium thread counts (e.g., 64 or 128). While the Critical Construct’s runtime showed a more complex trend, the Reduction Construct consistently offered shorter execution times.
Scheduling Strategy: When the thread count exceeded 20, dynamic and guided scheduling strategies proved to be up to 50% more efficient than the static strategy. Dynamic scheduling also demonstrated remarkable stability across various chunk sizes, performing similarly to guided and runtime strategies and superior to static.
Construct Selection: The Reduction Construct consistently showed superior efficiency, both within specific modules (like the “eat” module, which involves extensive calculations) and for the overall program execution. Its performance was optimal regardless of thread count settings, with its efficiency increasing the more it was used.
Also Read:
- Automating OpenMP Scheduling: A Look at Expert and AI Approaches
- Optimizing Multiple Objectives: A New Approach with Language Models and Grid Guidance
Practical Value and Future Directions
These findings offer valuable insights for optimizing the Fish School Behaviour algorithm on the Setonix platform and serve as a useful reference for other high-performance parallel computation studies using OpenMP on Setonix. The methodology and conclusions are particularly relevant for scenarios involving repeated, large-scale computations.
Looking ahead, the researchers plan to investigate other factors affecting algorithm performance, such as cache behavior and thread scheduling strategies within the operating system kernel. They also aim to explore other parallel frameworks and techniques to provide more comprehensive optimization strategies for diverse computational needs. This research, detailed further in the full paper, is expected to drive further innovations in parallel computing, offering more potent and efficient computational support for real-world challenges.


