What is FREDmpc?

FREDmpc is the result of Photon Engineering’s continued investment in leveraging GPU technology for fast, radiometrically precise optomechanical raytracing and analysis.

GPU hardware technology, of which NVIDIA is an industry leader, allows for thousands of processing units running in parallel to be contained within a single workstation. GPU hardware (and software) is rapidly advancing, is highly scalable, and has a relatively low entry cost when compared to distributable CPU based networks. By simply adding, or upgrading, the GPU board in a PC, raytracing and analyses with FREDmpc can be performed orders of magnitude faster using GPUs than with conventional multi-threaded CPUs.

From a program structure perspective, leveraging GPUs requires that every feature in FRED have two versions of itself in the source code base; one version written specifically for CPUs and one version written specifically for GPUs. When a request to use the GPUs is made, the FRED model on the CPU is passed through a translator that maps each FRED feature into its equivalent GPU version. A consequence of this structure is that every FRED feature needing support on the GPUs must be entirely rewritten in specialized GPU code.  As Photon Engineering continues to invest in GPU code development, the capabilities of FREDmpc will expand with each new release.

Is it fast?

Really fast?

Will FREDmpc work for my application?

  • Are you tracing large numbers of rays?
  • Do you often have to run calculations overnight or over multiple days?
  • Are your models often made up of thousands of surfaces?

If so then FREDmpc could be beneficial. The question is: how much is your time worth?

FREDmpc is under continuous development and new capabilities will be added in each release.  In order to help determine whether FREDmpc is appropriate for your analysis needs, the following table identifies important limitations of the current version.  For more specific information about supported features, please contact FRED Technical Support.

Coherent Field Propagation

FREDmpc does not currently support coherent field propagation.


FREDmpc does not currently support polarization raytracing or polarization analyses.

Numeric Precision

The GPU raytrace is currently single (float) precision, while the CPU raytrace is double precision. The influence of this limitation will depend, in part, on the scale and construction of your system. For example, long propagation distances or systems with many intersections may be more susceptible to error stackup due to single precision raytracing.

Not all FRED features have exact GPU implementations.  Depending on the construct being represented on the GPU, an approximation may be deployed.

Raytrace Paths

Raytrace path data can be tracked upon request with a user-specified maximum number of events per path. The path data will be available in the Raytrace Paths table and the Stray Light Report. There is currently no capability to support path-based ray selection (ex. Irradiance for rays on a specific ray path) or path redrawing.


When a document is pushed to the GPUs, scripted surfaces, materials, coatings, etc. will be approximated.  The FREDmpc raytrace and analysis capability can be executed from FRED’s scripting language, but no scripts will be compiled or run on the GPUs themselves.

Hardware Requirements

FREDmpc is not a standalone product, it is a version of our FRED Optical Engineering Software package that allows ray generation, ray tracing and analyses to be performed with GPUs.  In addition to the GPU capability, a FREDmpc license also allows access to all of the CPU feature capability of FRED and FRED Optimum.  When using the CPU features included in a FREDmpc license, the following PC configuration options should be considered:

  • FRED only runs on Windows. We recommend Windows 10.
  • FRED performs multi-threaded calculations on up to 17 threads while FRED Optimum supports up to 63 threads.  Any number of threads beyond the limit for your version of FRED are not used.
  • Many components of FRED, such as BASIC scripting calculations and model updating, are not multi-threaded. Therefore, high-speed processors are advantageous.  In many scenarios, performance is better for a smaller number of fast CPUs compared to a larger number of slow CPUs (e.g., 16 cores at 3.2 GHz vs. 24 cores at 2.4 GHz).
  • We recommend 16+ GB of RAM to avoid buffer overflows that may occur when working with large raytraces.
  • Sometimes, buffering cannot be avoided (e.g., when you need to trace more rays than can be processed with the available RAM).  For this reason, it is beneficial to have a system with a high disk I/O. This stands for input/output, which is the speed of data transfer between the hard disk and the RAM. A solid state drive (SSD) is also recommended.

GPU Requirements

FREDmpc requires one or more local NVIDIA GPU boards with compute capability 3.1 or newer.  Multiple GPU boards operating in parallel are supported.

This graph shows the relative performance of various GPU boards that have been successfully benchmarked with FREDmpc, where a GeForce GTX 1050 Ti has been used as the reference. Relative performance ranges are provided for each board in order to illustrate the range of outcomes that were observed during benchmarking (i.e. some FRED models raytrace faster than others). For example, the benchmark files on the Quadro GV100 executed between 2.4 and 12.6 times faster than the same files on the GeForce GTX 1050 Ti. Current prices for select boards of interest are shown on the right hand side of the graph.

How can I get it?

Email us at fredsales@photonengr.com, or call us at 1-520-733-9557, to purchase a new FREDmpc license or upgrade an existing FRED license.

New License Purchase

Product No.




Single-user license



Floating network license, per seat


Existing License Upgrade

Product No.




Single-user license upgrade from FRED Optimum



Floating network license upgrade from FRED Optimum, per seat



Annual Support and Renewal

Product No.




Single-user license



Floating network license, per seat