Field IIpro - a fast multi-threaded version of Field II
The development of the professional version Field IIpro has now been completed and all commands and modes are now parallelized. It takes advantage of the multi-core capabilities of modern CPUs. The central part of the program’s calculation routines 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.
For a 12 cores machine a speed up of a factor of nearly 25 can be attained.
A general speed-up is attained by a factor between 1.5 and 3 for single core processing compared to the free Web version. Multiple cores can be used and the calculation speed scales roughly proportional to the number of physical cores. Information about the changes and the performance can be found in the paper:
Jørgen Arendt Jensen: A Multi-threaded Version of Field II, IEEE International Ultrasonics Symposium, Chicago, 2014.
Field IIpro is fully compatible with Field II and all commands are validated to give the same results within machine precision. A single command for setting the number of threads has been added, which can be used to control have many independent threads are started and how the job is partitioned by the program. The parallelization is fully automatic and handled by the program.
Versions are found for Linux, Windows, and Mac. The versions can be run under Matlab version 2012 and newer. Versions are also found for Octave and a stand-alone C library. The last can be used for making stand-alone programs to run on e.g. clusters without the overhead of Matlab or Octave. The different versions are compiled specifically for the individual customers.
Please contact Jørgen Arendt Jensen at firstname.lastname@example.org for more information on pricing and delivery.
The increase in performance is seen below.
The graph shows the speed-up relative to the public available web version 3.20b as a function of the number of threads. The PC is running Ubuntu Linux 12.04 on a dual Intel(R) Xeon(R) E5440, 2.83 GHz, CPUs each with 4 cores. This machine can run 8 independent jobs and a speed-up of a factor of more than 11 is obtained on these eight cores compared to the freely available web version.
The program can also be run on more powerful server machines with more cores. Below is shown an example of the speed-up ratio relative to one core on a dual Intel(R) Xeon(R) E5645, 2.40 GHz CPUs with 6 cores and hyper threading. Note that there is a good scaling until around 11-12 cores,, whereafter the benefit is less, as hyper threading does not give a full increase in speed. The dashed red line shows what a linear increase in speed of the web version would give. This would ideally be what was attained if multiple copies of Matlab was run on the machine. It would quid possible be a less performance that was attained from this showing that the Field IIpro is a better utilization of resources and less complicated to obtain a good performance.
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. The more powerful machine with 12 physical cores can manage to calculate a 128 emission phased array image with 100.000 scatterers in less than a minute for rapid prototyping.
Please contact Jørgen Arendt Jensen at
for more information on pricing and delivery dates.