User:Siko1056: Difference between revisions

From Octave
Jump to navigation Jump to search
(Update info.)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== A: An introduction ==
This is '''Kai Torben Ohlhus''' (a.k.a. '''siko1056''' on Discourse and alike). I started contributing to GNU Octave during [[Summer of Code#GSoC 2013|GSoC 2013]] as student and worked on incomplete factorizations (read my [http://siko1056-gsoc.blogspot.com/ blog]). The project was completed in [[Summer of Code#GSoC 2014|GSoC 2014]] by [[User:Edu159 | Eduardo]].
* I am '''Kai Torben Ohlhus''', a [http://www.tuhh.de/alt/tuhh/education/degree-courses/masters-programs/informatik-ingenieurwesen.html computer science and engineering] student in the final master semester from Hamburg, Germany. During my studies I specialized on software systems and communication networks and discovered a passion for computer arithmetic and algorithms, which will now be topic of my master thesis. I speak German (native), English (fluent) and Spanish (basic).
* My intention to participate in the GSoC 2013 is to work on a software project that can be part of my master thesis, which will begin in April. Till now I have not participated in any GSoC and this year will be my last chance to do so.
* The choice for Octave came during the planning of my thesis schedule. My master thesis will deal with accurate fast scalar products. The modification of an dot product algorithm [http://www.ti3.tu-harburg.de/paper/rump/OgRuOi05.pdf [1, p. 8]] [http://rnc7.loria.fr/louvet_poster.pdf [2]], which makes use of FMA-instructions [https://en.wikipedia.org/wiki/FMA_instruction_set [3]] (which will soon be available on ordinary PCs Intel and AMD) is the starting point to create a routine to efficiently compute residuals (thus matrix vector products) of the form r_i = (A_i, -1) * (x , b_i)^T. The next step is to optimize them to be used with big sparse A matrices. To make the use of the routines available to many possible applications e.g. MATLAB or GNU Octave routines by using the MEX-Interface or Oct-Interface. However, I prefer [http://www.gnu.org/philosophy/open-source-misses-the-point.html free software] (Thank you Jordi for correcting my terminology) where I have access to the source code and freedom to modify it, rather than only to a sparse documentation. So don't be afraid to disapprove my application, I'll stick to Octave.


== C: Contact ==
Since 2013, I continuously support the development of [https://savannah.gnu.org/project/memberlist.php?group=octave "core" Octave] and maintain parts of the Octave [[Project Infrastructure]]:
* I know how to use IRC and I will be online as often as possible under the nick '''siko1056''' on #octave.
* GMT+02:00 (CEST)
* I use to work from 10.00 to 18.00 +/- 2 hours.


== E: Coding experience ==
* Several [https://hg.savannah.gnu.org/hgweb/octave/log?rev=ohlhus code contributions] to GNU Octave itself.
* Since the beginning of my studies (so more than four years) I work with C, C++, and m-scripts. I attended many courses and laboratories dealing with these three languages. From my 3rd semester on I have been tutoring these courses: [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=IIWBC&id=key2689 Laboratory course (MATLAB)], [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=IIWBC&id=key2224 Computer Programming (C)] and [http://intranet.tuhh.de/kvvz/vorlesung.php3?Lang=en&sg_s=AIWBC&id=key3219 Introduction to Programming (C)]. I have some  experience with Qt4. With OpenGL I have no experience so far, I worked with SDL.
** Triage the [https://savannah.gnu.org/bugs/?group=octave bug tracker] (review, comment, and push patches).
* Other languages of my studies were Java and web applications (JSP and Servlets). Because I use GNU/Linux as my day-to-day OS, I know BASH-scripting and for FPGA-Programming I worked with VHDL a lot. Additionally I created many documents using LaTeX.
** Support the release process (create and upload [interpreter] and [[Doxygen]] documentation).
* Nearly all programming laboratories at university were solved in a team, making use of version control systems and organization techniques like [https://en.wikipedia.org/wiki/Scrum_(development) scrum].
* Co-maintainer and caring for updates of
* My biggest project so far was [https://code.google.com/p/searchbooster/ searchbooster] a desktop document search tool based upon Apache Lucene and Apache Tika. It was developed in a team of four students, including me, using scrum, Subversion (at Google Code now GIT) in a time of three months. I learned, that an interface is something that should never be broken (if possible) and a proper code and comment style saves a lot of time!
** [[Special:ListUsers/sysop | this Octave wiki]] ([[Special:Contributions/Siko1056 |all contributions]]).
* I have not contributed to Octave so far.
** the official GNU Octave website https://www.octave.org ([https://hg.octave.org/web-octave/ page source]).
 
** the [https://octave.discourse.group Octave Discourse forum].
== F: Feeling fine ==
** several [https://gnu-octave.github.io/packages/ Octave packages].
* IRC I don't use that often and I read some mailing lists.
* [[Summer of Code | GSoC]] mentor in 2014, 2018, and 2020-2022, co-mentor in 2017.
* Concurrent versions systems like GIT, Subversion and Mercurial are well-known.
* I successfully installed a Mediawiki on my homepage once and I'm familiar with Wikipedia.
* make, gcc, gdb, javac and IDEs (e.g. Eclipse) I worked a lot with
* It would make me happy and stay I see that my work is used in the stable regular releases of Octave!
 
== O: Only out of interest ==
* Since I got to know MATLAB in my first semester, I also got to know about Octave and other numerical software environments. At my university we have free MATLAB student licences and thus many courses are dealing with MATLAB (but I figured out, that you can nearly run all m-files in Octave too). No other questions arose so far.
 
== P: Prerequisites ==
* My operating systems: Ubuntu 12.04.2 (64 bit) and Windows 7 (64 bit).
* Root access, no time restrictions.
* All day internet connection.
 
== S: Self-assessment ==
* As far as I can assess my coding behavior, it is more defense:
** I don't like to delete work (think before coding).
** I code in small revertible portions and like testing these steps to avoid above.
** I like to find out more efficient ways to do something (so critic is welcome, I want to learn).
** Sometimes I strive for perfection (not always useful, you get stuck unnecessarily).
 
== Y: Your task ==
* The task I would like to combine with my master thesis is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Incomplete_sparse_factorizations_ichol.2C_ilu Incomplete sparse factorizations ichol, ilu]. It may sound contradicting to implement approximation algorithms, when trying to implement accurate ones. My main reason to work on this project is to get more in touch with efficient ways of how to access big sparse matrices and how to work with the Octave-Interface. After the GSoC I want to apply this knowledge to deal with accurate matrix-vector products.
* My suggested schedule looks as follows (critics are welcome):
** 04 Mai - 16 June: Getting to know Octave and required algorithms in depth (much Mentor consultation to get the task right)
** 17 June - 02 August [Coding begins to Midterm]: Mostly autonomous implementation phase. First working implementations.
** 03 August - 16 September [Pencils down]: Everything fully implemented and tested according to Mentor consultation.
 
For more information of my progress have a look at my [http://siko1056-gsoc.blogspot.com/ blog].
 
[[Category:Summer of Code 2013 Applicants]]

Latest revision as of 17:01, 4 June 2022

This is Kai Torben Ohlhus (a.k.a. siko1056 on Discourse and alike). I started contributing to GNU Octave during GSoC 2013 as student and worked on incomplete factorizations (read my blog). The project was completed in GSoC 2014 by Eduardo.

Since 2013, I continuously support the development of "core" Octave and maintain parts of the Octave Project Infrastructure: