Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move position of "parallel" test in test/runtests.jl #5596

Closed
amitmurthy opened this issue Jan 29, 2014 · 8 comments
Closed

Move position of "parallel" test in test/runtests.jl #5596

amitmurthy opened this issue Jan 29, 2014 · 8 comments

Comments

@amitmurthy
Copy link
Contributor

The parallel test script requires the availability of other processes for its completion.

What is now happening now is that the parallel test script starts somewhere in the middle of the test suite and finishes last as it is waiting for free workers.

I propose we either

  1. Move to the end of the list, so that all workers are available when it executes

or

  1. Move it to the beginning of the list, but start an additional worker process. This would ensure that all the cores in the machine are used since the worker running parallel tests would spend most of its time waiting.

Thoughts?

@jiahao
Copy link
Member

jiahao commented Jan 29, 2014

A not unrelated issue is the positioning of the linalg test. Basically whichever worker gets the linalg test suite does nothing else but that for the entire duration of the test suite. If the parallel test requires all available workers, we should make sure it runs and completes before linalg.

@amitmurthy
Copy link
Contributor Author

That is expected since each worker can only only perform a single compute intensive task at a given time. I guess the linalg test just takes that much time on a single core.

@amitmurthy
Copy link
Contributor Author

May be we should

  1. make the blas_set_num_threads(1) conditional, i.e., do not set it when the only test being run is linalg

  2. Run linalg last with blas_set_num_threads(num_cores) ?

@jiahao
Copy link
Member

jiahao commented Jan 29, 2014

blas_set_num_threads(num_cores) wouldn't help very much because the linalg test suite consists of a very large number of individual tests on small (~10x10) matrices. Turning on the parallelism in BLAS won't really help make it run faster.

@amitmurthy
Copy link
Contributor Author

Is there a case for executing linalg tests in parallel? i.e., using @spawn for individual blocks with everything synchronized with an @sync. At least should definitely speed up test times during development, especially when run standalone. This would also require starting more than one worker even when linalg is the only test run.

@andreasnoack
Copy link
Member

I think it is the compilation time there is the slow part of the linalg tests. There are many functions and at least four versions of each, one for each BlasFloat.

Running in parallel would be a god thing to try. #5526 has many changes to the linear algebra tests so we should wait until it has been merged.

@jiahao
Copy link
Member

jiahao commented Jan 29, 2014

+1 for running the linalg tests asynchronously.

@amitmurthy
Copy link
Contributor Author

Closed by #5751

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants