[docs] add MathOptInterface.jl to the list of packages#92
[docs] add MathOptInterface.jl to the list of packages#92giordano merged 1 commit intoJuliaTesting:mainfrom
Conversation
|
Thanks! |
|
What is the reason for using PTR only on 64bit? |
|
On 32-bit it parallelised only over a single thread. Forcing more made it much slower. And it was faster still to not use PTR |
You can always pass ParallelTestRunner.jl/src/ParallelTestRunner.jl Lines 390 to 394 in 10225a7 |
|
Ah, this is hilarious, the problem is julia> 2 * 2^30
-2147483648This needs to be fixed 😃 |
Wait, I just noted this: that's surprising: there's some extra compilation latency involved when using separate parallel processes, but why would the overall speedup be substantially different between 32- and 64-bit julia builds? 🤔 |
|
Nah I meant: given PTR used one thread, then there is overhead to using PTR instead of not. There's a similar overhead in 64-bit, but the parallelism was a win. |
Hey!
I started using this in https://github.com/jump-dev/MathOptInterface.jl
Some may find our workflow interesting.
There are a lot of tests in MOI, and it is almost entirely bottlenecked by compilation time. (I should probably experiment with
Base.Experimental.@optlevel.)We shard the tests into directories in
/test, and then useParallelTestRunnerto parallelise over the files in each directory.Each file is a module that automatically detects and runs all of the functions named
test_.I find this works much better than
@testset, where I kept leaking stuff into setup and global scope and it was hard to maintain.Now adding a test is: choose a file, add a function.
You can improve parallelisation by splitting tests into a new file
The biggest downside is that it's easy to add two functions with the same name that overwrite each other. So there's a test to avoid that:
https://github.com/jump-dev/MathOptInterface.jl/blob/ea3cf8ca0060d776bb351fe4f7e1698d308f105c/test/General/test_errors.jl#L430-L453