End of GSoC 2.0

   My second innings of Google Summer of Code comes to an end. I have learned a lot of things. There is still some work left which I will complete after my exams. The link to my summer internship report is https://gist.github.com/debashish05/e1ec288a81d77e0fe61cbf336d147109. I have learned a lot of things from my mentors and develop an inclination towards research.

Works Done during this period:

1) RRPlugins have been integrated with Libroadrunner. So we don't require a separate build for rrplugins. Earlier this task was achieved in my last year project. But the problem is the change in roadrunner will force the plugins to need to rebuild, which is not the case now.

2) Build time will reduce since the plugins and roadrunner are not interdependent.

Updated all the plugins (https://github.com/sys-bio/rrplugins/tree/master/plugins/released), in the current system. Earlier these plugins were not working due to outdated wrapper and some minor bugs.

3) Updated Python wrapper for rrplugins with CPython.

4) Ported addNoise and testModel plugins to the new architecture where building roadrunner doesn't affect them. The new system works on passing the structure of function pointer from the host to dll. It is based on https://github.com/sys-bio/PluginSystemExample.

5) Porting Optimizers to work in Python 3.

6) Updated all the plugins (https://github.com/sys-bio/rrplugins/tree/master/plugins/released), in the current system. Earlier these plugins were not working due to outdated wrapper and some minor bugs.


I still have two major work to do make the feature-complete:

1) Port optimizer to the new system, the main problem arrives when we try to optimize the parameters and skip some species. Like if the model consists of 3 species S1, S2 and S3 and parameters k1, k2 and we try to optimize k1 and k2 based on species S1 and S3 it will not work. The code is not designed to handle this problem.

2) Adding differential Evolution optimizer.


There are lots of challenges I faced during my internship. Some major ones are as follows:

1) While integrating Libroadrunner with RRPlugins, RPlugins has a dependency on Libroadrunner. Removing the dependency in such a way that changes in roadrunner or plugins doesn't need to rebuild plugins or roadrunner respectively, is a tough task. Fortunately, my Mentor came out with a model to pass data through a structure of function pointers.

2) Porting plugin to the new architecture was a tough task. Because of the new architecture that uses C API and when plugins call these API, the data need to be converted from C to appropriate types.

3) Unplanned online semester exams in between the GSoC period is taking a lot of time.

Overall, the GSoC journey has been a tough one. The learning curve is very high and learned many new things. There were many days when I used to work all day. I didn't get complete 3 months for GSoC due to my exams. Thanks to my mentor, he understands my concerns, and that's what differentiates a teacher and a mentor in the industry. I will finish the left out work after my exams and looking forward to publishing a paper along with my mentor.

Debashish Roy.

NEVER GIVE UP.

Comments

Popular posts from this blog

Monte Carlo Bootstrap

Provided all Libroadrunner functions to plugins using RoadRunner C API