Intel® Quartus® Prime Standard Edition User Guide: Design Compilation

ID 683283
Date 9/24/2018
Document Table of Contents

4.2.2. Enabling Multi-Processor Compilation

The Compiler can detect and use multiple processors to reduce total compilation time. You specify the number of processors the Compiler uses. The Intel® Quartus® Prime software can use up to 16 processors to run algorithms in parallel. The Compiler uses parallel compilation by default. To reserve some processors for other tasks, specify a maximum number of processors that the software uses.

This technique reduces the compilation time by up to 10% on systems with two processing cores, and by up to 20% on systems with four cores. When running timing analysis independently, two processors reduce the timing analysis time by an average of 10%. This reduction reaches an average of 15% when using four processors.

The Intel® Quartus® Prime software does not necessarily use all the processors that you specify during a given compilation. Additionally, the software never uses more than the specified number of processors. This fact enables you to work on other tasks without slowing down your computer. The use of multiple processors does not affect the quality of the fit. For a given Fitter seed, and given Maximum processors allowed setting on a specific design, the fit is exactly the same and deterministic. This remains true, regardless of the target machine, and the number of available processors. Different Maximum processors allowed specifications produce different results of the same quality. The impact is similar to changing the Fitter seed setting.

To enable multiprocessor compilation, follow these steps:

  1. Open or create an Intel® Quartus® Prime project.
  2. Click Assignments > Settings > Compilation Process Settings.
  3. Under Parallel compilation, specify options for the number of processors the Compiler uses.
  4. View detailed information about processor use in the Parallel Compilation report following compilation.

    To specify the number of processors for compilation at the command line, use the following Tcl command in your script:

    set_global_assignment -name NUM_PARALLEL_PROCESSORS <value>

    In this case, <value> is an integer from 1 to 16.

    If you want the Intel® Quartus® Prime software to detect the number of processors and use all the processors for the compilation, include the following Tcl command in your script:

    set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL

    The actual reduction in compilation time when using incremental compilation partitions depends on your design and on the specific compilation settings. For example, compilations with multi-corner optimization enabled benefit more from using multiple processors than compilations without multi-corner optimization. The Fitter (quartus_fit) and the Intel® Quartus® Prime Timing Analyzer (quartus_sta) stages in the compilation can, in certain cases, benefit from the use of multiple processors. The Flow Elapsed Time report shows the average number of processors for these stages. The Parallel Compilation report shows a more detailed breakdown of processor usage. This report displays only if you enable parallel compilation.

    For designs with partitions, once you partition your design and enable partial compilation, the Intel® Quartus® Prime software can use different processors to compile those partitions simultaneously during Analysis & Synthesis. This can cause higher peak memory usage during Analysis & Synthesis.

    Note: The Compiler detects Intel® Hyper-Threading® Technology (Intel® HT Technology) as a single processor. If your system includes a single processor with Intel HT Technology, set the number of processors to one. Do not use the Intel® HT Technology for Intel® Quartus® Prime compilations.