User:Edu159: Difference between revisions

Jump to navigation Jump to search
1,059 bytes added ,  19 March 2014
Line 95: Line 95:


== Y: Your task ==
== Y: Your task ==
My intention is upgrading  some functions related with sparse matrices  so they become compliant with Matlab  and implement others that are not present in Octave right now. Next
My intention is upgrading  some functions related with sparse matrices  so they become compliant with Matlab  and implement others that are not present in Octave right now.  
The functions are '''ichol''', '''ilu''', '''sprand''', '''sprandn''', '''sprandsym''', '''minres''' and '''lsqr'''.  
The functions are '''ichol''', '''ilu''', '''sprand''', '''sprandn''', '''sprandsym''', '''minres''' and '''lsqr'''.  


* Approach:
*'''Approach:'''
 
**'''ilu:''' That function has a big chunk of options and the last year was almost implemented by Kai Torben as his GSOC [http://siko1056-gsoc.blogspot.de/ project]. He interfaced Octave with ITSOL/ZITSOL libraries but in the end there were some issues with that approach:
**'''ilu:''' That function has a big chunk of options and the last year was almost implemented by Kai Torben as his GSOC [http://siko1056-gsoc.blogspot.de/ project]. He interfaced Octave with ITSOL/ZITSOL libraries but in the end there were some issues with that approach:
:#ILUTP algorithm did not work for him
:#ILUTP algorithm did not work for him
Line 104: Line 105:
:#modified versions of algorithms ("milu" option) were not implemented in the libraries
:#modified versions of algorithms ("milu" option) were not implemented in the libraries
:#That "ugly" scenario lead to finally not being able to include ITSOL as a dependency with Octave. Bottom line, the integration of the function with the development\n repository could not be achieved.
:#That "ugly" scenario lead to finally not being able to include ITSOL as a dependency with Octave. Bottom line, the integration of the function with the development\n repository could not be achieved.
::I have been in contact with Kai by mail and agree that writing from scratch all the functions needed as oct-files (ILUTP, ILU0, ILUC and ILUT) would be a valid way to go. This way no dependencies are needed to be added and the overhead of translating the data from Octave to ITSOL and vice verse is eliminated. Algorithms will be taken from Yousef Saad's  book "Iterative methods for sparse linear systems Ed. 2". Moreover, I can use some of the code that Kai wrote, mostly the tests, documentation and the m-file "ilu.m" that glue together all the functions. ITSOL source code is also a good place to look for some help.
::I have been in contact with Kai by mail and agrees that writing from scratch all the functions needed as oct-files (ILUTP, ILU0, ILUC and ILUT) would be a valid way to go. This way no dependencies are needed to be added and the overhead of translating the data from Octave to ITSOL and vice verse is eliminated. Algorithms will be taken from Yousef Saad's  book "Iterative methods for sparse linear systems Ed. 2". Moreover, I can use some of the code that Kai wrote, mostly the tests, documentation and the m-file "ilu.m" that glue together all the functions. ITSOL source code is also a good place to look for some help.
::I have implemented the ILU0 algorithm so far and benchmarked it against Matlab and Kai's last GsOC version(using ITSOL). The performance is great. You can check the code and see a table with the execution times in a blog I have created for the project([http://edu159-gsoc2014.blogspot.com.es/2014/03/ilu0-implementation.html link])
::I have implemented the ILU0 algorithm so far and benchmarked it against Matlab and Kai's last GsOC version(using ITSOL). The performance is great. You can check the code and see a table with the execution times in a blog I have created for the project([http://edu159-gsoc2014.blogspot.com.es/2014/03/ilu0-implementation.html link])


Line 118: Line 119:
:'''->'''I think I have a clear road map of what I want to do but I don't know for sure if it will be enough for the GSoC period. There are other functions that I would like to implement if it would be necessary. Let me know what do you think about.
:'''->'''I think I have a clear road map of what I want to do but I don't know for sure if it will be enough for the GSoC period. There are other functions that I would like to implement if it would be necessary. Let me know what do you think about.


*Estimated timeline:
*'''Estimated timeline:'''
 
 
 


* Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.''
:*'''FIRST PERIOD:'''
[[Category: Summer of Code]]
::'''19  May:'''  Start implementing ilu related functions. In the order ILUT, ILUC , ILUTP.
::'''15  June:''' Write ILUT, ILUC, ILUTP automated tests, documentation and benchmarking.
::'''23  June:'''  '''(Millstone 1)''' ilu funtion is fully funtional. Start coding ichol related functions (by this time license issues I mentioned should be resolved and a solid strategy should be set)
::'''27 June:''' '''Mid-ter evaluation'''


:*'''SECOND PERIOD:'''
::'''15  July:'''  '''(Millstone 2)''' ichol is functional. Write automated tests, documentation and benchmarking.
::'''20  July:'''  start implementing lsqr and minres
::'''5  August:'''  lsqr and minres implemented and tested. Start coding sprandsym and tweaking sprand/sprandn (maybe at this point they are already tweaked)
::'''13 August:'''  '''(Millstone 3)''' all the sp* functions are implemented
::'''13-18 August:'''  Buffer days for any unexpected situation or minor change that should be done.


Under construction....
'''Note:''' I set schedule starting on May 19th but I would like to start coding since I know I am selected (22 April), so maybe goals are would be reached before stated above. So that dates should be taken as high limits. In June I have scheduled 3 exams that still not have fixed dates. I am not worried about them since I have a lot of time for studying.
77

edits

Navigation menu