Closed bcumming closed 7 years ago
We have started to use Julia, and you can consider using it too.
Benefits:
Cons:
As a prelude to the upcoming GPU hackathon, we should have this test bed in a state where we can validate and benchmark CPU and GPU implementations of the solver across a number of configurations of sets of matrices.
A test configuration would consist of timing the performance across N matrices drawn from k sparsity patterns, each pattern corresponding to a different discretized neuron morphology. Three broad categories are of interest: uniform, with k=1; low diversity, with 1 < k ≪ N; and high diversity, with N ≤ k.
Subtasks (point estimate in [brackets]):
We have a CUDA implementation which can deal with a large number of neurons, but not different. We are working on a version which can deal with different morphologies. We have a seq. version for Hines.
For the test harness, instead of taking a dumped set of Hines matrices, how about feeding in the "recipe" directly?
miniapp
-> dump
-> run harness
workflowIt's a good approach — especially (as we discussed offline) if we leave out for now iterative schemes and tackle just direct solvers for the Hackathon, allowing us to pretty much ignore the 'correct' values of the matrix elements and just go straight from recipe → morphology → matrix sparsity → concrete but arbitrary diagonally dominant matrix, without having to extract data from the lowered cells.
After having a scan through the paper on L-systems, I wonder if that is a bit too complex for our case? It would be nice to have a feature in our NestMC library for building such morphologies, but a time estimate of 8 unites seems a bit optimistic to me.
How about something much simpler with a couple of tunable parameters?
The complexity is in the data representation, but I think using a fairly simple class hierarchy for the representation of the distribution parameters and corresponding json representation would suffice, and take about two days to code. Generation from that point should be straightforward, and we can pull the distribution parameters for some neurons directly from the paper.
This task will set up a test bed for experimentation with the solution of Hines matrices. On completion, we will have a test bed for further experimentation and an understanding of Hines matrices.
Steps involved
l
,u
,p
andrhs
vectors)v
from the previous time step, which will be used as the starting point for iterative methods.