|
From: | Dmitri A. Sergatskov |
Subject: | Re: Octave, ATLAS, and Large Matricies |
Date: | Mon, 11 Sep 2017 13:25:55 -0500 |
I've been careful to vectorize my programs so that they'll be efficient. My
computer has lots of RAM (1TB) and many cores (32), but when it comes to
matrix operations, performance is less than what I would expect.
Here's an example of a simple program.
A = rand(162000000,15)>0.5;
B = rand(162000000,15);
C = rand(162000000,15);
tic;
D = ~A&B~=0;
B(D) = B(D)+C(D);
toc;
When I run this program, the "tic/toc" section takes 85.2911 seconds.
Because these are all matrix operations, I expected this to run very
quickly. However I later learned that Octave doesn't use multiple cores, by
default, and that compiling with ATLAS may allow Octave to use multiple
cores. Am I correct to believe that compiling Octave with ATLAS would speed
up this program, or would multi-threading not help this situation?
I have no experience with multi-threaded programs. Am I on the right track?
Would compiling, with ATLAS, improve performance in this scenario?
If anyone has any experience with an ATLAS/Octave installation, I'd love to
hear your thoughts on this. Thanks for your time.
[Prev in Thread] | Current Thread | [Next in Thread] |