defaultalt Field II home page
Point spread function Field II Simulation Program
    Main page
Center for Fast
Ultrasound Imaging
Biomedical Engineering


Menu Line
Menu Line
Users guide
Menu Line
Menu Line
Menu Line
Menu Line
Menu Line
Menu Line

Field IIpro

Menu Line


Menu Line

The parallel version: Field IIpro

The Field IIpro version has now been released for commercial use. The program uses multi-threaded parallel execution to speed up simulation, which on modern multi-core CPUs can give a very significant reduction in simulation time. This has been accomplished by rewriting large parts of the program to make it faster and reuse memory more efficiently. Especially the command calc_scat has been improved.


The program is 100% compatible with the free web version and has been extensively validated on all platforms to comply with the web version. Old code can therefore be run directly and gain from the speedup. A single commands sets the number of threads used for execution. This should normally be set to the number of independent cores of the CPU. Hyper-threading can also be used, but the advantage of hyper-threading cores is usually less than actual, physical cores.

Octave and C versions

A new feature is also that the code is not only available for Matlab, but also for running under the free Octave program under Linux. Standalone C programs can also be made as a C linkable library has been made. This makes it possible to create programs which can be run form a command prompt independently from either Matlab or Octave. The m-files must then be converted to a C-program, which often is longer than the Matlab program. Assistance can be given for this conversion process.

Currently the following versions can be acquired:

C library
Linux Yes Yes Yes
Mac OS X Yes Enquire about release date Yes
Windows Yes Enquire about release date Yes


The professional version of Field II takes advantage of the multi-core capabilities of modern CPUs. The central part of the programs calculation routine and its memory management has been re-written for optimizing speed on multi-core CPUs. This has both increased single-core and multi core execution of the calc_scat command. The increase in performance is seen below.

Performance for rectangles

The graph shows the speed-up relative to the public available web version 3.24a as a function of the number of threads. The PC is running Ubuntu Linux 12.04 on a dual Intel(R) Xeon(R) E2630, 2.60 GHz, CPUs each with 6 cores with hyper-threading for a combine total of 24 hyper-threading cores. This machine can run 12 independent jobs and a speed-up of a factor of more than 25 is obtained on these twelve cores compared to the freely available web version.

For a newer iMac with a 4 cores 2.7 GHz Intel i5 Field IIpro can typically simulate 1 million point scatterers in around 18 seconds for a 64 active elements transducer.

Similar speed-up ratios can be found for all other commands when simulating for a number of points or point scatterer. Small jobs with few scatterers does not benefit more, but larger jobs gains the significant speed-up for nearly all applications and options.

Performance for bounding lines

The performance has also been measured for the bounding lines method. Below is shown an example of the speed-up ratio relative to one core on the dual Intel(R) Xeon(R) E2630, 2.60 GHz CPUs with 12 cores and hyper threading.

Paper about Field IIpro

You can read the following paper, if you want to known more about Field IIpro and its performance:

Jensen, JA 2014, 'A Multi-threaded Version of Field II', in Proceedings of IEEE International Ultrasonics Symposium. IEEE, pp. 2229-2232., 10.1109/ULTSYM.2014.0555

Please contact Jørgen Arendt Jensen at for more information on pricing, delivery, and help with the new version.

Last updated: 21:06 on Tue, 06-Jan-2015