cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
thilankathi
Observer
Observer
3,084 Views
Registered: ‎03-07-2019

how to decide the number of jobs in Run settings in generate output products

Jump to solution

I am using Vivado and have already validated the block design. I need to generate output products and i am not sure how to decide the number of jobs in run settings there. I have attached a screenshot of the window below. 

Selection_026.png

Thanks in advanced

0 Kudos
1 Solution

Accepted Solutions
stephenm
Xilinx Employee
Xilinx Employee
760 Views
Registered: ‎09-12-2007

@huizy If you are scripting, you can use something like:

proc numberOfCPUs {} {
    # Windows puts it in an environment variable
    global tcl_platform env
    if {$tcl_platform(platform) eq "windows"} {
        return $env(NUMBER_OF_PROCESSORS)
    }

    # Check for sysctl (OSX, BSD)
    set sysctl [auto_execok "sysctl"]
    if {[llength $sysctl]} {
        if {![catch {exec {*}$sysctl -n "hw.ncpu"} cores]} {
            return $cores
        }
    }

    # Assume Linux, which has /proc/cpuinfo, but be careful
    if {![catch {open "/proc/cpuinfo"} f]} {
        set cores [regexp -all -line {^processor\s} [read $f]]
        close $f
        if {$cores > 0} {
            return $cores
        }
    }

    # No idea what the actual number of cores is; exhausted all our options
    # Fall back to returning 1; there must be at least that because we're running on it!
    return 1
}

Then use this like:

launch_runs synth_1 -jobs [numberOfCPUs]

View solution in original post

8 Replies
watari
Professor
Professor
3,062 Views
Registered: ‎06-16-2013

Hi @thilankathi 

 

It depends on your computer.

How many cores and threads are there ?

 

Best regards,

gabed
Xilinx Employee
Xilinx Employee
3,047 Views
Registered: ‎03-21-2018

Hi @thilankathi 

If I don't need processing power for other applications, I typically maximize the number of jobs.


Cheers
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
0 Kudos
nagender_patel
Observer
Observer
3,032 Views
Registered: ‎03-21-2017

type set_param general.maxThreads 8 in tcl console

it depends on the number of cores your pc has...

hemangd
Moderator
Moderator
3,016 Views
Registered: ‎03-16-2017

Hi @thilankathi

Go through this AR and UG 904 to understand more about the number of Jobs and its usage. https://www.xilinx.com/support/answers/60655.html

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_1/ug904-vivado-implementation.pdf

(page 7 onwards.)

 

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.
0 Kudos
thilankathi
Observer
Observer
2,989 Views
Registered: ‎03-07-2019

Thanks for the replies guys. so does thid mean that the number of jobs means the number of jobs done in parallel? Is that why it depemds on the number of cores in your computer? Anyways how does it affect the performance on fpga? or it doesnt affect the performance inside fpga? I mean what depends on the number of jobs ?

Thanks in advance!

0 Kudos
hemangd
Moderator
Moderator
2,924 Views
Registered: ‎03-16-2017

@thilankathi 

>> mean that the number of jobs means the number of jobs done in parallel? 

Check this at your end to understand it better. - Create a GUI project in Vivado - add multiple Xilinx IPs from IP catalog - now OOC pop up will come to generate its products where you will see that pop up asks to set the number of jobs - If you set 1 there then only one OOC synthesis will be done at a time. If you set more than 1 then you will see parallel OOC synthesis is happening for those IPs. You can see these in Design Runs tab.

Hope you will get your answers by doing this exercise. 

 

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.
huizy
Newbie
Newbie
781 Views
Registered: ‎06-15-2021

thanks!

0 Kudos
stephenm
Xilinx Employee
Xilinx Employee
761 Views
Registered: ‎09-12-2007

@huizy If you are scripting, you can use something like:

proc numberOfCPUs {} {
    # Windows puts it in an environment variable
    global tcl_platform env
    if {$tcl_platform(platform) eq "windows"} {
        return $env(NUMBER_OF_PROCESSORS)
    }

    # Check for sysctl (OSX, BSD)
    set sysctl [auto_execok "sysctl"]
    if {[llength $sysctl]} {
        if {![catch {exec {*}$sysctl -n "hw.ncpu"} cores]} {
            return $cores
        }
    }

    # Assume Linux, which has /proc/cpuinfo, but be careful
    if {![catch {open "/proc/cpuinfo"} f]} {
        set cores [regexp -all -line {^processor\s} [read $f]]
        close $f
        if {$cores > 0} {
            return $cores
        }
    }

    # No idea what the actual number of cores is; exhausted all our options
    # Fall back to returning 1; there must be at least that because we're running on it!
    return 1
}

Then use this like:

launch_runs synth_1 -jobs [numberOfCPUs]

View solution in original post