Changes

Jump to navigation Jump to search
2,259 bytes added ,  17:08, 3 August 2018
<onlyinclude>
[[Wei Wu]] [[Work Logs]] [[Wei Wu(Work log)|(log page)]] <br>
[[Matlab, CUDA, and GPU Computing]]
2018-06-11 <br>
*Set up wiki page and RDP for work. Installed CUDA on dbserver. Waiting for Matlab and Gurobi to be installed on the dbserver (or I will do it myself later this week). *Started looking at the paper inn in progress [http://mcnair.bakerinstitute.org/wiki/Estimating_Unobserved_Complementarities_between_Entrepreneurs_and_Venture_Capitalists ''Estimating Unobserved Complementarities between Entrepreneurs and Venture Capitalists''] and its related Matlab code. *Began looking for ways to incorporate CUDA parallel computation with Matlab and Julia.
2018-06-12 <br>
2018-06-13 <br>
*Continued searching for a method to set up vnc for dbserver without ssh. *Started moving the selenium box, monitors, keyboards, etc, from Room 310. *Matlab matching code with Ed, James, and Chenyu via Skype.
2018-06-18 <br>
2018-07-05 <br>
*There is still problems with W being singular. I have changed R and monte_M to be as big as in the original code. Either I neglected something, or there is still a bug. Or perhaps it's just normal. See [[File:a copy of warning messages from Matlab command windows.pdf]]. When W is singular, this leads to fitness function for the second stage ga being minimized to negative infinity.
*I am trying to put gurobi into a parfor in Matlab. So far, not good. Wanted to figure out how to do CPU-based parallel computing with Gurobi. I cannot find a way to run Gurobi solvers inside a parfor. I believe Matlab's linprog can, but linprog is much slower than Gurobi. There will be some trade off. I need to test this.
 
2018-07-06
I really need to understand the code better. Also we probably can run Gurobi inside parfor, but I need to wrap it around inside a function.
 
2018-07-09
I have run profiling on the Matlab code several times. It seems that moments.m takes up as much time as calling Gurobi to solve LPs. Probably we should optimize moments.m instead.
 
[[File:profiling.png]]
 
2018-07-10
Ran profiling again. With big enough R, the parallel code is much faster. Documented in the project [[Matlab, CUDA, and GPU Computing]]<br>
 
2018-07-11
'''Croatia 2-1 England!!!!!!!!!!!!!!!!!!!!!'''
 
2018-07-12
*Helped Minh install Tensorflow on DB Server.
*Learned to use NOTS.
 
2018-07-13
*Further parallelize Matlab code (msmf_corr_coeff.m). Now on our 12 cores server, one call to msmf_corr_coeff takes about 35 seconds for R=200, monte_M = 70, mktsize = 30.
*Will try to parallelize moments.m. Currently it takes 10 seconds per call. This in included in the 35 seconds runtime of msmf_corr_coeff.m.
*Reverted back to using Matlab's linprog rather than Gurobi. In a parfor, gurobi takes much longer than the native linprog to solve our LPs. I do not fully understand why this is happening. It might be the way that Gurobi was called inside a function that increases the overhead, or it might be that Gurobi couldn't utilize the full power of our CPU since all 12 cores have been scheduled to work on 12 different LPs (some LP algorithm of Gurobi has parallelism). Note that creating a model for Gurobi takes time.
[[FILE:msmf35seconds.png]]
<br>
2018-07-16
*Run monte_data mode with R=200, monte_M = 70, mktsize = 30. The msmf was computed fairly fast.
[[FILE:msmf_monte_data.png]]
*Run data mode with R=200, monte_M=70, mktsize = 30.
[[FILE:msmf_data.png]]
<br>
2018-07-18
*Run monte mode with R=200, monte_M = 200, mktsize = 30.
*Helped Maxine with industrial classifier.
*Worked on documentations for NOTS and parallelization
*Worked on running matlab code on NOTS
 
2018-07-19 ~ 30
Ran diagnostics requested by Chenyu
 
2018-08
Help Marcus get familiar with the Matlab code for matching VCs to startups.

Navigation menu