[zeromq-dev] Research and student involvement

Martin Sustrik sustrik at 250bpm.com
Sun Apr 25 22:07:00 CEST 2010


There was a question on IRC about the possibility of students being 
involved in the research. I am answering via mailing list as it may be 
interesting to a larger audience.

Firstly, there's no 0MQ GSoC project this year. Mea culpa! Hopefully, 
there will be one next year.

Secondly, any student can do programming/research as a private person.

As for doing research as a part of curriculum, there's a question of IP 
rights to consider. As far as I understand, IP rights for any work done 
within curriculum belong to the school.

Thus, to provide patches to 0MQ, school must be OK with submitting the 
patches under MIT license.

As for the research the issue is more complex. The best solution would 
be to do it under auspices of IETF, which defines sensible and not 
overly restricting rules for handling copyrights (BCP 78) and patents 
(BCP 79).

As for actual work that may be done by students it ranges from simple 
programming tasks suitable for assignments for undergraduates to major 
problems worth of PhD. thesis.

Off the top of my head:

Algorithms and data structures: Improve memory footprint (and thus 
performance) of 0MQ topic matching algorithm.

Operating systems: Implement O(1) scheduler with priorities.

Statistics: Define sound statistical model for evaluation of latency & 
throughput results.

Application design: Define coherent model for passing topic 
subscriptions up the (possible unreliable) pub/sub hierarchy and 
implement it. Or: Define reliability model(s) to improve overall 
reliability of the system -- including persistence -- and implement it.

Microarchitectures: Formally describe and prove the correctness of 
lock-free algorithms used in 0MQ. Optionally, provide a reference 
implementation on microarchitecture of your choice.

Networking: Define how 0MQ API can be integrated with Berkeley sockets. 
Optionally, write a wrapper library to implement the integration.

Security: Define optimal security model for a use case of your choice. 
Use cases with untrusted middle nodes are of special interest.

Experimental: Test the impact of different hardware/software 
technologies on performance of 0MQ.

Generic: Research how location of endpoints can be done, taking into 
account existing Internet standards.



More information about the zeromq-dev mailing list