What is FREDmpc?

FREDmpc is a version of Photon Engineering’s FRED Optical Engineering Software package that allows ray generation, ray tracing and analyses to be performed with GPUs and is the result of our continued investment in leveraging cutting-edge 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.

FREDmpc is not a standalone product, it is an extension to the existing capabilities of FRED and FRED Optimum.  All of FRED’s modeling, raytrace and analyses capabilities can be applied in the usual manner with the addition that raytracing and analyses can optionally be performed on the GPUs upon request.

Is it fast?

Really fast?

How does FREDmpc work?

From a program structure perspective, features in FRED which are supported on the GPUs have two implementations 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 supported FRED feature into its equivalent GPU version.  As Photon Engineering continues to invest in GPU code development, the capabilities of FREDmpc will expand with each new release.

In FRED, performing raytracing and analyses on the GPUs can be accomplished with a single mouse click.  The model translation, raytracing and analyses happen transparently to the user with no additional interaction required.

When should I use FREDmpc?

  • 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.

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.

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.


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.

CPU Requirements

  • 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 the need for temporarily buffering ray data on disk when tracing large numbers of rays.
  • Sometimes, buffering ray data on disk cannot be avoided (e.g., when you need to trace more rays than can be stored in 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 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.

Benchmark and pricing data last updated 02/2019

How can I get it?

For more information regarding FREDmpc, email us at fredsales@photonengr.com, or call us at 1-520-733-9557.

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