Page 2 of 2

Re: Load balancing with heterogeneous morphologies and synap

Posted: Tue Mar 28, 2017 2:58 pm
by hines
I encourage you to modify lpt_bal to write a file instead of return the per process balance data. That typically corresponds better to a natural workflow in which separate runs do separate phases of the problem.

After reading the mcomplex.dat file, just compute the cell complexities as before. Those complexities will be better proxies for the actual relative computation
time.

Re: Load balancing with heterogeneous morphologies and synap

Posted: Wed Apr 05, 2017 1:05 pm
by iraikov
Hi Michael,

Sorry to bring this up again, but it looks like if each MPI rank calls ExperimentalMechComplex procedure, the mcomplex.dat file will get clobbered by the different ranks writing to it. Would it be sufficient to call ExperimentalMechComplex and then compute cell complexities without writing to mcomplex.dat? Thanks,
Ivan
hines wrote:I encourage you to modify lpt_bal to write a file instead of return the per process balance data. That typically corresponds better to a natural workflow in which separate runs do separate phases of the problem.

After reading the mcomplex.dat file, just compute the cell complexities as before. Those complexities will be better proxies for the actual relative computation
time.

Re: Load balancing with heterogeneous morphologies and synap

Posted: Thu Apr 06, 2017 12:11 am
by ted
That can be prevented by reorganizing the code to separate determination of complexity from writing results to the output file. Then all hosts can calculate the complexities in parallel, after which writing to the output file can be done by a procedure that serializes the process of generating the output file. I don't have a Python example at hand, but there must be something similar somewhere in ModelDB; proc spikeout() in ran3par.hoc in ModelDB entry 96444 is an example of a hoc implementation of a serialized output file generator.

Re: Load balancing with heterogeneous morphologies and synap

Posted: Sat Apr 08, 2017 2:45 pm
by hines
ExperimentalMechComplexity is parallelized to distribute the mechanism experiments on different ranks and should safely write a single mcomplex.dat file.
By the way, you can add a list of mechanism name arguments for mechanism that should NOT be performance tested,