I have developed my thesis codes by means of Mathematica software in a .nb file format. Despite using the available Parallel code capabilities and doing all the numerical integrations by means of parallel programming; the duration of programme run is so so much high; something like 2 to 3 weeks; which makes the debugging and verification part of the thesis almost unavailable. My question goes to two branches:

  1. How can I make my programme more efficient and run faster.
  2. I have heard that by applying the Cude or GPU programming; the duration of run will significantly be reduced. How is it possible to automatically change and turn my present codes to a Cude GPU code?

As far as I am facing lack of time for my thesis; answers to my questions and helping me decrease the run duration will be so appreciated.

  • $\begingroup$ Hard to say. As for 1) blog.wolfram.com/2011/12/07/… or mathematica.stackexchange.com/questions/29349/… $\endgroup$
    – Ajasja
    Commented Jun 16, 2014 at 12:49
  • $\begingroup$ This question is much too broad to be answerable. It all depends on what your program does and how it's implemented. The most likely to be successful solution for a program that runs for 3 weeks is to rewrite it in a low-level language such as C, C++, Fortran, Java, etc. Using CUDA is not as simple as flipping on a switch. It requires rewriting the program an it's not always applicable. To take full advantage of it, you'd need to resort to using C again. $\endgroup$
    – Szabolcs
    Commented Jun 16, 2014 at 12:52
  • $\begingroup$ This question is partially answered in that page but there is no clue to the GPU and Cuda writing there at all. $\endgroup$
    – enthu
    Commented Jun 16, 2014 at 13:04
  • $\begingroup$ Do you perform matrix inversion of large matrices by any chance? It makes a really huge difference whether you have integers of reals in them. $\endgroup$ Commented Jun 16, 2014 at 13:27
  • $\begingroup$ @user52417 Your CUDA question is essentially: "how can I speed up any Mathematica code using CUDA"? This is much too broad to have a clear answer, and for this reason it is not a good fit for this site anyway. Questions should be specific enough so that they can be reasonable answered in a page or so. The most basic thing you can do is look at the CUDALink documentation which lists a number of operations pre-implemented to be sped up using CUDA, such as CUDADot, CUDATotal, etc. You can try to use these. $\endgroup$
    – Szabolcs
    Commented Jun 16, 2014 at 13:46


Browse other questions tagged or ask your own question.