Overview
Comment: | Run the same number of concurrent jobs as CPUs |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
cc3e0b7bd252d76be8f9666653f4263a |
User & Date: | rkeene on 2018-08-17 19:13:44 |
Other Links: | manifest | tags |
Context
2018-08-17
| ||
20:37 | Start of work on OpenMP GPU offloading for work generation check-in: f87706a75e user: rkeene tags: trunk | |
19:13 | Run the same number of concurrent jobs as CPUs check-in: cc3e0b7bd2 user: rkeene tags: trunk | |
16:21 | Added script which can be used to generate blocks for a stress test check-in: 94a2cee313 user: rkeene tags: trunk | |
Changes
Modified examples/stress/stress from [15325924cd] to [ed9cc0294e].
︙ | ︙ | |||
18 19 20 21 22 23 24 | db eval {INSERT INTO blocks (orderID, blockJSON) VALUES ($orderID, $block);} } } set ::initDB true uplevel #0 $threadInit | < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | db eval {INSERT INTO blocks (orderID, blockJSON) VALUES ($orderID, $block);} } } set ::initDB true uplevel #0 $threadInit set iterationCount 1 db eval { PRAGMA journal_mode = MEMORY; CREATE TABLE blocks (orderID INTEGER PRIMARY KEY, blockJSON TEXT NOT NULL); } ## -- PROCESSES proc numberOfThreads {} { # Windows puts it in an environment variable if {[info exists ::env(NUMBER_OF_PROCESSORS)]} { 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]} { if {[string is integer -strict $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 } set ::jobIDs [list] set ::numberOfThreads [numberOfThreads] set ::threadPool [::tpool::create -minworkers $numberOfThreads -maxworkers $numberOfThreads -initcmd $::threadInit] set ::processBlock_orderID -1 proc processBlock {args} { updateStatus incr ::processBlock_orderID set jobID [::tpool::post $::threadPool [list processBlockWorker ${::processBlock_orderID} {*}$args]] |
︙ | ︙ |