Closed

Speed up MATLAB code on Linux Cluster

Hi there,

For a customer I've got a matlab project:

I've got a quite large matlab code that takes a a long time to run. Toe code solve an economic model numerically and consists of two main part: The first part solves an analytic equiation of on a large multidimensional grid (similar to the finite elements method). The second part simulates the model using random numbers and the solutions found in the first part. Part 1 is about 90 lines including emtpy lines (see EGM_parfor.m), and part 2 is about 160 lines (see Simulate.m). Both files use similar functions.

The code runs fine, but it doesn't scale well and the speed up is not so large when i run on multiple cores. What I'd like help with is:

EGM_parfor.m:

Optimize the code so that it runs faster in parallel. Please leave inputs and outputs unchanged so I don't need to alter the code in any other place in order to use the changes.

* There is probably a lot of performance to gain by correctly accessing the memmory ex by accessing data in colunmns and avoid creating unneccesary variables as outlined in [url removed, login to view])

* There might be some help on this blog?: [url removed, login to view] (But the code don't have many matrix multiplications)

Simulate.m:

This code is not yet parallelized. It is much quicker than the EGM_parfor, but still a little slow. Please leave inputs and outputs unchanged so I don't need to alter the code in any other place in order to use the changes.

* Please optimize the code to run faster, maybe some of the tricks from above?

* Further, please paralellize the code by adding an "outer" loop around it that divides the code into N "chunks" that each run on a separate matlab worker. For example, if there is 100k simulations and N=4, then create a parfor-loop that runs the first 25k simulations in the first iteration, simulations 25001-50k on the second iteration, and so on.

I attach the files you need to see in order to make a bid. Once I've decided on a bidder I will send all of the files as a .zip-file.

In order for me to take your bid seriously please write a few sentences about your experience of using PCT and MDCS in general and your experience with optimizing such code on a 64bit linux cluster specifically.

I will put all the money on escrow, but not release the payment until I'm 100% satisfied that the code is working as before, but substantially faster. I expect a code improvement of around 10 times (EG_parfor + Simulate). If you can speed it up as much as 50 times I will double your bid as payment, 100 times tripple it.

Skills: Algorithm, Engineering, Mathematics, Matlab and Mathematica, Physics

See more: matlab linux cluster, speed matlab code linux cluster, Simulations, your engineering solutions, what is parallel programming, what is multidimensional data, what is multidimensional, what is a loop in programming, up as, the economic times, programming with matlab, programming patterns, programming on linux, programming in matlab, programming in mathematica, payment method using escrow, patterns for parallel programming, parallel programming patterns, parallel programming in c, parallel patterns, multidimensional data model example, multidimensional data, matrix articles, mathworks, i need part time worker

About the Employer:
( 11 reviews ) stockholm, Sweden

Project ID: #5319795