RP Fiber Power – Simulation and Design Software
for Fiber Optics, Amplifiers and Fiber Lasers
Boost the Computation Speed with the Numerical Power Package
RP Fiber Power has been carefully optimized for high computational efficiency, resulting in high speed execution. For most users, the speed of the standard RP Fiber Power version is fully sufficient. Most of the supplied demo scripts can be executed on an ordinary PC within at most a couple of seconds. In many practical applications, computational speed is no issue at all, even if a not particularly fast computer is used.
However, there are situations where a sophisticated simulation requires substantial computation time – particularly in the following contexts:
- Propagation of ultrashort pulses: long computation times can result e.g. if one needs to propagate a pulse through a long fiber many times, or if strong nonlinear interactions and a large pulse bandwidth (particularly in conjunction with a long pulse duration) increase the computational demands.
- Numerical beam propagation can also be demanding, e.g. when propagating through long fibers, particularly if a numerical grid with high resolution is required.
Therefore, some small percentage of the users of this software has applications where a substantially faster execution is quite desirable. To address that need, since 05/2020 we are offering (with moderate additional cost) the Numerical Power Package as an add-on to RP Fiber Power which provides the following:
- You get a much improved speed in the above-mentioned cases – often more than a factor of 5, sometimes even more than a factor of 10, particularly with a modern CPU.
- It also greatly speeds up certain functions of the script language, mostly those concerning arrays and matrices.
- In addition, it provides some more special functions, which you may use in your scripts for purposes like multiplying or inverting matrices.
- The Bessel J function is delivered with higher accuracy. Also, Bessel functions are supported for complex arguments and not only for real arguments, also for non-integer orders.
- In addition, you get the Hankel functions of first and second kind and the associated Legendre polynomials.
Note that general calculations outside the indicated cases do not obtain a speed improvement.
Some more numerical features of the Numerical Power Package may be developed, and those will then be delivered to existing customers as free updates.
How does the Numerical Power Package work?
RP Fiber Power (in any version since 05/2020) is now using a numerical library which normally does not require special DLLs, but can utilize such DLLs as provided with the Numerical Power Package. These DLLs contain code which utilizes special CPU instructions (namely of types SSE3, SSE4, AVX, AVX2, and AVX-512), which have been developed for efficient numerical mass production. For example, a single CPU instruction may perform a certain mathematical operation not just to one or a few numbers, but to large fields of such numbers.
The largest performance improvement results just from an improvement of efficiency of calculations done by a single CPU core. Some functions, however, also use multithreading, i.e., the simultaneous utilization of multiple CPU cores.
For many tasks, the software automatically applies one of several codes, depending on the recognized CPU features.
Although the mentioned types of CPU instructions have been supported by most CPUs (even for ordinary office PCs) for quite a few years, few software packages utilize them because the program code needs to be substantially adapted for that.
What do you need?
For using the Numerical Power Package, you need the following:
- Hardware: Your computer must have a suitable CPU, supporting at least the SSE3 instruction set. That should be the case for nearly every PC sold in recent years – not only for special high-performance machines. We have obtained massive improvements of performance on a PC with an Intel Core-i7 4770 CPU, purchased in 2013. We expect similar advances for computers with AMD CPUs, but have so far not yet tested that. In case of doubt, we can deliver a test program for checking the performance improvements with your CPU in some typical cases.
- Software license: Purchase an RP Fiber Power license which includes the Numerical Power Package (or an upgrade if you already have a license). This is not restricted to the latest version V7; you may purchase the Numerical Power Package also as an add-on to an earlier version, if you do not need the upgrade to V7. However, you are advised to use at least V5 because otherwise you cannot use numerical beam propagation.
- Installation: Install the obtained RP Fiber Power version, containing support for that package, on your computer(s). Then install the Numerical Power Package itself, obtained through an extra installation package with a substantially larger size. That installs the required DLLs.
Most software updates will not require updating the DLLs. If it is needed, you will be advised by RP Photonics to update the DLLs as well. Once you have a license for some RP Fiber Power version with the Numerical Power Package, you will not need to pay extra for getting the latter updated.
In order to obtain the greatly improved speed, you do not need to apply any changes in your simulation scripts or the program settings. Only, you might want to utilize some of the offered additional functions.
Comments on Computer Hardware
Of course, it also helps if you use a fast computer. The most important aspect is the single-thread performance, i.e., the speed with which it can execute a single thread. This is determined by factors like a high clock frequency, possibly enhanced with hyperthreading. Having a large CPU cache can also be very helpful.
Having more CPU cores helps only marginally with the standard version, but helps significantly at least in some cases if you have the Numerical Power Package. Mostly, however, it allows you to execute other software at the same time without being substantially slowed down.
If you purchase a new computer for maximum speed, look out for a CPU supporting the AVX-512 extensions, which brings a substantial further improvement when using the Numerical Power Package. However, an Intel Core-i7, not yet supporting AVX-512, provides a great improvement already. We have seen some first indications that AMD CPUs are less well supported than Intel CPUs – leading to lower speed with or without the Numerical Power Package.
Besides, having sufficient main memory is beneficial. Most simulations don't need large amounts of memory, but some do – in particular, when using numerical beam propagation with large grids. While normally e.g. 8 GB of main memory should be fully sufficient, having some more (nowadays at marginal cost) may help in certain cases.
Basically all modern CPUs can operate in 64-bit mode, but only when used under a 64-bit Windows. We do supply 32-bit versions of our software for customers still using a 32-bit Windows version, but note that 32-bit versions cannot use more than 3 GB of main memory (even if you have much more installed), and is also typically around 20% slower. Nowadays, there is usually no reason not to use a 64-bit Windows version.
Optimized Approaches for Modeling
Frequently, you can have enormous gains of speed just by choosing the right approach for your modeling. For example, you should always choose a kind of model which takes into account all relevant physical effects, but nothing beyond that. Also, one should always keep in mind which questions the modeling should answer in the end.
As a user of RP Fiber Power, you get competent support – also regarding such questions. It is recommended that in case of doubt you discuss such aspects with Dr. Paschotta at the very beginning of a modeling project.