LabVIEW FPGA Idea Exchange

About LabVIEW FPGA Idea Exchange

Have a LabVIEW FPGA Idea?

  1. Does your idea apply to LabVIEW in general? Get the best feedback by posting it on the original LabVIEW Idea Exchange.
  2. Browse by label or search in the LabVIEW FPGA Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  3. If your idea has not been submitted click New Idea to submit a product idea to the LabVIEW FPGA Idea Exchange. Be sure to submit a separate post for each idea.
  4. Watch as the community gives your idea kudos and adds their input.
  5. As NI R&D considers the idea, they will change the idea status.
  6. Give kudos to other ideas that you would like to see in a future version of LabVIEW FPGA!
cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-core Compiling

Even though ibberger touched the concept in the idea , I do think that most o people uses LabVIEW under Windows environment. Compiling a FPGA VI happens all in the PC under Windows. I noticed that during this process the compiler uses only one core. Since I'm using a machine with a 4 core processor, the CPU use rarely goes above 25%.

 

My idea is to update the compiler allowing it to be multicore. The user should have the option to limit the maximum number of cores available to the compiler. This is necessary because the user may want to continue working, while the compiling process is being done in background.

André Manzolli

Engenheiro Mecânico
Certified LabVIEW Developer - CLD
LabVIEW Champion
40 Comments
Trusted Enthusiast

Or at least allow the single-pc compiler to run more than one job at a time.  I often have 4-6 compiles running at a time because we made a change somewhere and ALL affected Bitfiles need to ne recreated.  Even running multiple parallel slow compilations would be great.

Active Participant

Intaris: good alternative for now. I'm buying an 8 core workstation to replace my 5 years old 4 core machine. Be able to create multiple parallel compile processes would be great.

 

André Manzolli

Engenheiro Mecânico
Certified LabVIEW Developer - CLD
LabVIEW Champion
Member

Intaris,

 

The FPGA Compile Worker can be configured to support multiple concurrent compiles.  Here's a screenshot of the FPGA Compile Worker's configuration dialog:

 

 

configure compile worker.PNG

 

 

While each individual job will only use one core, multiple simultaneous jobs can be run.

Trusted Enthusiast

Yeah, it can be configured but will still run only one job at a time.  I even downloadsd the compile farm demo but got no joy at all.  Still only one process at a time.

 

My experience at least.

 

Shane.

Member

Shane,

 

From my own experience with LabVIEW FPGA over the past few years, I've been successfully able to compile multiple jobs simultaneously (each with their own process, too).  I'm guessing there is likely a configuration or setting difference.  Also, remember to restart the compile worker in order for new settings to take effect.

Member

Here's shortcuts for speeding up single FPGA compiles on both Windows 7 and XP for i7 and i5 systems with Turbo Boost. This only applies to a workstation, not a compile farm.  In my case I was able to reduce the compile time 40-50%. It will at least shave several minutes off the compile.

Make sure Turbo Boost is enabled in the BIOS if the option is there.

Windows 7:

Find the Compile Worker shortcut in the start menu and copy it to the desktop.
Modify the compile worker target command to add CMD and START commands (spaces and quotes are important):

C:\Windows\System32\cmd.exe /C START " " /HIGH /AFFINITY 0X01   "C:\Program Files (x86)\National Instruments\FPGA\CompileWorker\CompileWorker.exe"

Windows XP:

Download PsExec from the Microsoft website. It will be part of a suite of commands. I used version 1.98. Unzip the directory, then copy PsExec to C:\Windows\System32.

As above, find the Compile Worker shortcut in the start menu and copy it to the desktop.
Modify the compile worker target to add the PsExec command:

C:\WINDOWS\System32\PsExec -high -a 0 -d  "C:\Program Files\National Instruments\FPGA\CompileWorker\CompileWorker.exe"

If your original Compile Worker command is different, use that. Make sure it is enclosed in quotes.

To use: double click on the modified shortcut to start the Compile Worker. It will start and remain dormant in the background. Open a project and perform an FPGA build. The compile will be queued to the Compile Worker as normal. CPU usage can be monitored in Task Manager. As the compile progresses, the first core usage should eventually peg at 100%. The synthesis phase should be noticeably faster.

For Windows 7, Intel has a Turbo Boost monitor tool.

Why it works: The compiler seems to benefit from higher CPU clock speeds rather than more cores. The scheduler tends to move the process among the different CPU cores, and so the CPU isn't loaded down enough for Turbo Boost to stay on. The above commands force the compile to stay on one core, encouraging Turbo Boost to stay on for the duration of the compile.

Member

Lorn's method works.  My compile time was reduced from 85 minutes to 45.

Trusted Enthusiast

@Lorn:  Oh, OK.  I just cut my compile time from nearly 50 minutes down to 23 minutes.  This could turn out to be a huge timesaver.

Active Participant

Great tip for time reduction for those which have i5s and i7s. But still takes too long and all others are stucked in the same place. As this idea become older, the pressure increases because laptops, desktops tablets, and mobiles are increasing performance mostly by adding cores to the CPU.

André Manzolli

Engenheiro Mecânico
Certified LabVIEW Developer - CLD
LabVIEW Champion
Active Participant

I agree Manzoli- however I suspect there's very little NI can do to overcome the limitations of tools provided by a third party. I also suspect it's the nature of the task that it does not yield well to parallel processing.