Personal details
Name: NUEL Guillaume
University: Cryptis ( France, Limoges city )
Course: Computer security
Degree Program: Master
Email: Show email
Homepage: http://immortal-pc.info/
Availability:
University: Cryptis ( France, Limoges city )
Course: Computer security
Degree Program: Master
Email: Show email
Homepage: http://immortal-pc.info/
Availability:
I'll work from 9h to 19:30h (maybe later...:p like 3am)
I have exams until May 23.
Since this date to 01 september I will work on GSOC
NOTE: I Have 2 weeks of holiday with my family at these dates:
I have exams until May 23.
Since this date to 01 september I will work on GSOC
NOTE: I Have 2 weeks of holiday with my family at these dates:
-> 3 June to 9 June
-> 24 June to 30 June
-> 24 June to 30 June
Educational background
- Homeschooling until University. (I went in england twice for HESFES)
- 3 degree in computer science ( Mathematics and Computer science )
- 3 degree in computer science ( Mathematics and Computer science )
- Algorithms ( B-Tree, red black, ... )
- C, C++
- Maths: algebra, analysis
- Boolean algebra
- Scheme
- DataBase: MySQL, Oracle (PL/SQL)
- Web: PHP, HTML, CSS
- Hardware and Software Architecture
- Unix introduction
- OpenGL
- Design and development of applications. ( I have made a game in SDL/nCurse in 17000 lines (C++, template, socket, svn, doxygen) )
- Network (Cisco router)
- Socket
- Thread/Fork
- Theory of Formal Languages
- Java
- UML
- Optimization
- 1 Year in master in computer security (Cryptis)- C, C++
- Maths: algebra, analysis
- Boolean algebra
- Scheme
- DataBase: MySQL, Oracle (PL/SQL)
- Web: PHP, HTML, CSS
- Hardware and Software Architecture
- Unix introduction
- OpenGL
- Design and development of applications. ( I have made a game in SDL/nCurse in 17000 lines (C++, template, socket, svn, doxygen) )
- Network (Cisco router)
- Socket
- Thread/Fork
- Theory of Formal Languages
- Java
- UML
- Optimization
- iptables
- Python (Scapy)
- OpenMP and Cuda
- JEE, Maven, jUnit
- Network
- IA
- Cryptology
- DataBase security
- Android
- Actualy: ending my master in computer security- Python (Scapy)
- OpenMP and Cuda
- JEE, Maven, jUnit
- Network
- IA
- Cryptology
- DataBase security
- Android
Programming background
Work
01 Jan. 12 - 01 Sept. 12Placement in Yaeco (start-up). ( Lead Developer )
09 May 11 - 29 July 11Placement in INSA ( Lyon )
09 May 11 - 29 July 11Placement in INSA ( Lyon )
Achievements
Yaeco: HTML5, CSS3, javascript, jQuery, jQuery UI, Java Applet, C++, Qt
SMTP Class: PHP, OOP, SMTP
PHP Mailing List: PHP, MySQL, TinyMCE, SMTP
QConsole: Begin of terminal for Windows/UNIX - Qt, C++, OOP
Eguida: some PHP
Bomberman: Game, C++, SDL, SDL gfx, SDL ttf, template, network/socket (17 000 lines)
Rootkit: Rootkit.
SMTP Class: PHP, OOP, SMTP
PHP Mailing List: PHP, MySQL, TinyMCE, SMTP
QConsole: Begin of terminal for Windows/UNIX - Qt, C++, OOP
Eguida: some PHP
Bomberman: Game, C++, SDL, SDL gfx, SDL ttf, template, network/socket (17 000 lines)
Rootkit: Rootkit.
More information at bitbucket.org/ImmortalPC and at bitbucket.org/DevsOfLegend
See my CV
Why contributing to the Boost C++ Libraries.
My programming style tries to be fast and clean. Boost is fast, clean, have good doc and is quite big !
I'm really interested in parallel programming, so it is natural to want to program a thread pool.
I use a lot the Python multiprocessing lib. And when I need to code in C + +, despite the undeniable power boost, there is no thread pool.
I'm really interested in parallel programming, so it is natural to want to program a thread pool.
I use a lot the Python multiprocessing lib. And when I need to code in C + +, despite the undeniable power boost, there is no thread pool.
Have you done any previous work in this area before or on similar projects ?
Not. I only coded a basic thread pool.
Plans beyond this Summer.
Making Boost.Thread working faster :D
And I'd love to try to add an overlay with MPI. (Thread across the network.)
And I'd love to try to add an overlay with MPI. (Thread across the network.)
Please rate, from 0 to 5 (0 being no experience, 5 being expert), your knowledge of the following languages, technologies, or tools:
C++ -> 5/5
C++ Standard Library -> 4/5
Boost C++ Libraries -> 2.5/5
Subversion/GIT -> 5/5
C++ Standard Library -> 4/5
Boost C++ Libraries -> 2.5/5
Subversion/GIT -> 5/5
What software development environments are you most familiar with (Visual Studio, Eclipse, KDevelop, etc.)?
QtCreator (for C, C++), Eclipse (for Java), NetBeans (for JEE), Geany (for all :D)
What software documentation tool are you most familiar with (Doxygen, DocBook, Quickbook, etc.)?
Doxygen
Proposal
Boost.Thread/ThreadPool ¶
Provide a boost::ThreadPool class.
Class Summary:
Features:
Class Summary:
Features:
- void map(Function fn, {data1,data2,...});
map is a blocking function which call fn(data1), fn(data2), ...
ONE CALL PER parameter
NO return
Ex:
ONE CALL PER parameter
NO return
Ex:
- array<Boost::result_of<Func>>::type map_return( Func& fn, T initializer_list );
map is a blocking function which call fn(data1), fn(data2), ...
ONE CALL PER parameter
AND map return a list of data returned by fn(...);
Ex:
ONE CALL PER parameter
AND map return a list of data returned by fn(...);
Ex:
- apply_async:
void apply_async( Function fn );
void apply_async( Function fn, T data );
void apply_async( Function fn, {data1,data2,...});
Nonblocking function.
These functions (fn) will be executed just when when_all or when_any will be called
Ex:
void apply_async( Function fn, T data );
void apply_async( Function fn, {data1,data2,...});
Nonblocking function.
These functions (fn) will be executed just when when_all or when_any will be called
Ex:
- Priority Tasks:
void ThreadPool_Prioritized::apply_async( uint_16 order, Function fn );
void ThreadPool_Prioritized::apply_async( uint_16 order, Function fn, T data );
void ThreadPool_Prioritized::apply_async( uint_16 order, Function fn, {data1,data2,...});
Ex:
void ThreadPool_Prioritized::apply_async( uint_16 order, Function fn, T data );
void ThreadPool_Prioritized::apply_async( uint_16 order, Function fn, {data1,data2,...});
Ex:
- Future / Schedule execution
Maybe provide a link to Boost.Future:
We consider an execution queue. Note:
Add somme function like:
We consider an execution queue. Note:
add, then, wait_for are nonblocking functions.
when_all, when_any are blocking functions
Ex:when_all, when_any are blocking functions
Add somme function like:
- Loop
Provide a loop system to make easier some calcul.
Ex:
Ex:
- Resize:
Permit to add/remove thread
- Auto detect number of cpus/cores using boost::thread::hardware_concurrency
- Make some fun with Thread across the network.
If I have enough time I will be happy to provide a ThreadPool_Network class: Thread across the network.
If I havn't enough time I will do it after this summer.
If I havn't enough time I will do it after this summer.
Lib to use:
>> Boost.Thread, Mutex
>> Boost.Future [1]
>> Boost.Chrono
>> Boost.Queue
>> Boost.result_of (boost/utility/result_of)
>> std::initializer_list
>> std::array
>> Boost.MPI
>> Boost.Future [1]
>> Boost.Chrono
>> Boost.Queue
>> Boost.result_of (boost/utility/result_of)
>> std::initializer_list
>> std::array
>> Boost.MPI
Thread across the network.
Important paper:
Note: I'm an expert in C++ template and have good skills in OpenMP, Cuda.
Millestones and schedule
Week 1:Develop ThreadPool
Week 2:Develop ThreadPool
Week 3:Add tests and optimize
Week 4:Develop ThreadPool
Week 5:Ending ThreadPool & Tests
Week 6:Provide ThreadPool_Prioritized and discuss/provide ThreadPool_Future
Week 7:Add Test for ThreadPool_Prioritized and develop ThreadPool_Future
Week 8:Develop ThreadPool_Futur
Week 9:Develop ThreadPool_Futur
Week 10:Add tests and optimize
Week 11:Provide ThreadPool_Advanced
Week 12:Discuss and provide ThreadPool_Network