  As one of open-source codes widely used in computational ocean acoustics,
FOR3D can provide a very good estimate for underwater acoustic propagation. In
this paper, we propose a performance optimization and parallelization to speed
up the running of FOR3D. We utilized a variety of methods to enhance the entire
performance, such as using a multi-threaded programming model to exploit the
potential capability of the many-core node of high-performance computing (HPC)
system, tuning compile options, using efficient tuned mathematical library and
utilizing vectorization optimization instruction. In addition, we extended the
application from single-frequency calculation to multi-frequency calculation
successfully by using OpenMP+MPI hybrid programming techniques on the
mainstream HPC platform. A detailed performance evaluation was performed and
the results showed that the proposed parallelization obtained good accelerated
effect of 25.77X when testing a typical three-dimensional medium-sized case on
Tianhe-2 supercomputer. It also showed that the tuned parallel version has a
weak-scalability. The speed of calculation of underwater sound field can be
greatly improved by the strategy mentioned in this paper. The method used in
this paper is not only applicable to other similar computing models in
computational ocean acoustics but also a guideline of performance enhancement
for scientific and engineering application running on modern
many-core-computing platform.
