Quartus® Prime Standard Edition User Guide: Design Compilation

ID 683283
Date 10/22/2021
Public
Document Table of Contents

4.1.2. Enabling Multi-Processor Compilation

The compiler can detect and use multiple processors to reduce total compilation time. By default, the compiler uses the setting specified under Parallel Compilation in the Processing page of the Options dialog box. To reserve some processors for other tasks, specify the maximum number of processors the software must use.

Using multiple processor cores provides several benefits for improving software performance as follows:

  • Faster execution: The Quartus® Prime software can support up to 24 processors, which means the software can run algorithms in parallel. This technique reduces the compilation time by up to 10% on systems with two processing cores and up to 20% on systems with four processors. 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.
  • Increased throughput: With more processing cores, systems can execute multiple tasks simultaneously, which means the software can handle more requests simultaneously. The Quartus® Prime software may not necessarily utilize all the processors specified during compilation. The software has the flexibility to scale its usage to use up to the maximum number of processors specified. To achieve the highest possible throughput, Intel recommends using a system equipped with at least four processing cores, allowing the software to take full advantage of the available computing resources.
  • Reduced latency: With multiple processing cores, the software responds more quickly to your requests, improving the overall experience. The software never uses more than the specified number of processors, so you can work on other tasks in parallel without slowing down your computer.
  • More efficient resource utilization: By distributing tasks across multiple processor cores, the Quartus® Prime software can use available resources more efficiently, reducing the overall cost of running the software.

The use of multiple processors does not affect the quality of the fit. The fit is the same and deterministic for a given Fitter seed and given Maximum processors allowed setting on a specific design. This remains true regardless of the target system and the number of available processors. Different Maximum processors allowed specifications produces 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 Quartus® Prime project.
  2. Click Assignments > Settings > Compilation Process Settings.
  3. Under Parallel compilation, specify options for the number of processors the compiler uses.

    View the number of processors detected on your system in the Parallel Compilation report after compilation ends.

    Figure 38. Parallel Compilation Report

    The following is the QSF setting that controls the maximum number of processors. If this line is in your project's QSF file, do not specify it again.

    set_global_assignment -name NUM_PARALLEL_PROCESSORS <value>

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

    If you want the 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 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 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:
    • Using multiple processor cores can help the Quartus® Prime software run faster, handle more tasks, and provide a better user experience. However, other factors, such as memory bandwidth or I/O bottlenecks, may limit performance. So, you must consider specific requirements and constraints of each project when deciding how many processor cores to use.
    • 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. Set the number of processors according to the number of physical processors in your system,

    The following are other factors that affect performance in the Quartus® Prime software: