maedoc / libtvb

TVB C library
6 stars 8 forks source link

Docs #100

Closed maedoc closed 8 years ago

maedoc commented 8 years ago

Need a strategy for documentation.

AbheekG commented 8 years ago

@maedoc Starting to use, understand and develop is taking lot of time. An example can be updated in the docs or some more info can be provided how the code has been managed and distributed in python, C and Matlab.

maedoc commented 8 years ago

@abheekg If you have gcc and make, you should be able to

make tests
make bench_net_exc

to build the library and a benchmark example. Have you tried that? We can add more instructions on how to profile, and so on.

As for documenting the library itself, I will build the Doxygen HTML docs and put them somewhere visible.

maedoc commented 8 years ago

Also, I moved the MATLAB and python bindings to separate branches / pull requests until they are stable. The git master branch is currently only for C lib.

AbheekG commented 8 years ago

@maedoc I have built the tests and benchmark. I also studied the code extensively, especially the /src directory. With the long sequence on function pointers I was unable to find some function definitions (like user_apply(..) ). The code is highly functional, it would be helpful if you can give a deeper picture of how the toolkit is intended to work and how I can contribute.

I have very good experience in C and good familiarity with make and other common software development tools etc. I am a student and have some background of numerical computation. I have ongoing courses on numerical (like Monte Carlo Stimulation) & parallel programming (but mostly in cuda). I would like to get seriously involved in the project.

P. S. I found this the only place to contact.

maedoc commented 8 years ago

@abheekg you can find my email on my github profile page, feel free to contact me there

The goal of the toolkit is to support computational & theoretical modeling research, letting the user set up and run a simulation with desired components (solver, integration scheme, nonlinear stochastic delay differential equation (SDDE) system, outputs, etc), either predefined or provided by user. It's currently quite new (first commit in December), which is why high-level, tutorial style documentation is currently lacking, though I've updated README (even with picutres). Currently I am working bindings for MATLAB & Python, and then demos & tutorial documentation is the next step.

re: function pointers, sorry I know, but this is a useful technique to depend on the interface and not implementation details (see Go & Java for languages which live by this rule). Usually, the c file where the implementation lies will build the struct of function pointers, see this output object for example (which serves just to stop the simulation after a certain amount of time).

I've labeled a few issues with the label "C" to identify useful contributions a C programmer could make; ask specific questions there if you like.

Finally, we do intend to have a CUDA or OpenCL Monte-Carlo setup eventually, so if you have experience and time to build that, would be awesome, we'd need to discuss some on the architecture. Specifically, two scenarios we want to have are 1) run a single simulation on each GPU thread (Monte-Carlo style) and 2) parallelize a single simulation across GPU.

maedoc commented 8 years ago

doc tech noted in the wiki