Re: RE:Dual Core

*To*: mathgroup at smc.vnet.net*Subject*: [mg70149] Re: RE:Dual Core*From*: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>*Date*: Thu, 5 Oct 2006 03:33:18 -0400 (EDT)*Organization*: Uni Leipzig*References*: <eg02p8$86s$1@smc.vnet.net>

Hi, what did you expect ?? The Mathematica Kernel is written in C++, this means, that it can do everything (and more) than Java can do. The problem ist, that a parallel program may use all your processors and it will take longer than a serial version. This ist in allmost all problems the case and it is a hard work that the parallel version is not slower than the serial one. Especial for numerical algorithms (mostly linear algebra) a lot of work has been done to develop fast parallel numerical algorithms. But the most of thease algorithms are made for super computers with hundreds or thousands of CPUs and is is a huge difference for an algorithm if it should run faster on two (dual core) CPUs or on 64 CPUs ... Mathematica make use of the parallel linear algebra by using special librarys that use more than a single core when the user allow it (set the OMP_NUM_THREADS environment variable under Linux or MS-Windows to a number >= 2). For symbolic algorithms only a very few parallel versions are known and Mathematica is a computer algebra that does mostly symbolic computation and I don't expect, that the symbolic engine of Mathematica will work parallel in the near future. But Mathematica *has* already everything to do parallel computations, not with threads but with MathLink and on distributed memory basis. The Parallel Computing Toolkit does this and it is simple to create a parallel Mathematica programm with the build-in MathLink in Mathematica language or with C++ and MathLink without buying the Parallel Computing Toolkit or the personal grid edition. And at some day the FrontEnd will launch a second hidden kernel to support the graphics rendering, the formating of expressions and notebooks and the printing jobs. Best regards Jens <markc.westwood at gmail.com> schrieb im Newsbeitrag news:eg02p8$86s$1 at smc.vnet.net... | Hi | | Welcome to the world of performance evaluation. You ask 'Is Mathematica really unable to use both cores at the same time ?' while the answer to the question is staring you in the face -- no it cannot. You probably have a right to expect the operating system (if it is multicore aware) to distribute separate threads of execution onto different cores, so you can (again probably -- the only true answer is derived by testing and experimentation) run Excel on one core (in one thread) and Mathematica on the other (in another thread). | | In general the task of splitting a computation onto 2 cores is the same as writing 2 programs which, cooperatively and while running at the same time, solve a problem. Imagine, if you wish, writing 2 Mathematica programs to carry out 1 computation. Not so easy. And possibly we shouldn't expect Mathematica to do this automatically for us, not with the current state of the art. I'm extremely doubtful that the internal workings of Solve, Reduce, etc are easily distributable onto multiple cores -- I guess someone from WRI will put me (us) right on that if I'm dead flat wrong. Mathematica doesn't have, as languages such as Java do, programming constructs for managing separate threads of execution, unless you jump to MathLink programming. | | If you watch the task manager very closely while you're working with Mathematica you might (just) see the front-end and the kernel on different cores since they are (and have long been) handled by different threads of execution. But the amount of time most of us spend in the front-end is insignificant and it may not appear high up the list of tasks if at all. | | Reference to the WRI site does show that there is a 64-bit multicore version of Mathematica available. I would be interested (and other readers of this thread too I guess) in knowing if you are using this version -- in which case you probably feel very disappointed. I'd also be interested in learning from users of that version whether Mathematica can indeed distribute a single command such as Solve or Reduce over multiple cores. That's something I might even pay money for. | | Hope this helps | | Regards | Mark | | Link to the forum page for this post: | http://www.mathematica-users.org/webMathematica/wiki/wiki.jsp?pageName=Special:Forum_ViewTopic&pid=14135#p14135 | Posted through http://www.mathematica-users.org [[postId=14135]] | |