The Hebrew University – Experimental Systems Lab
(previously Parallel Systems Lab)
Excellent students who would like to work on some project in our lab
(or initiate their own projects) are invited to look at
the list of projects and
contact Dror Feitelson
Our research is generally about experimental computer science, in
the natural sciences meaning of the term: using observation and
measurements to learn about the world, in our case the world of
The "parallel systems" title is outdated, as much of the work
is not related to parallelism any more.
Code Complexity and Comprehension
We are interested in what makes program code hard to understand.
This started with the high-MCC functions of Linux, but has since taken
a life of its own.
The main points are
- Identification of code regularity as a new factor that may affect
the ease of comprehension and compensate for length.
- A quest for better code complexity metrics than the ubiquitous MCC.
- The impact of naming as implicit documentation.
Linux Kernel Development
We are not so much participating in developing Linux, as observing the
development process, in the interest of understanding software
evolution in general and open-source development in particular.
- Studying the evolution of Linux, and features like functions with
extremely high MCC.
- Development of the perpetual development model, showing the
growth of the development backbone and release of stable production versions.
- Studying the configuration complexity of Linux.
Workloads and Their Effect on Design and Performance
The performance (and indeed, the behavior) of a computer system
depends on its design, its implementation, and on its workload —
what it is actually requested to do.
We are involved in various aspects of workload characterization and
modeling, including data cleaning.
We're also interested in how what we learn about the workloads may
affect new design ideas.
Notable activities include
- Work on user-based modeling, including feedback effects where the
workload is generated dynamically in reaction to system performance.
- Work on locality and diversity in workloads, including the
definition of locality of sampling.
- Work on mass-count disparity, and its use in randomized dual caches.
- Work on using resampling of workload logs to create modified
workloads for use in evaluations.
- Work on cleaning workload data, including the identification of
workload flurries in parallel system logs and robots in web search logs.
- We maintain the Parallel Workloads Archive.
Global Scheduling for Virtualization (2007 – 2013)
Scheduling and resource management in virtualization environments
(especially server consolidation) typically boil down to supporting
But what does it mean to give a certain virtual machine 20% of the
resources, when it needs more of the CPU but less of the network?
Our work tries to define the semantics of multi-resource allocations,
and support them by carefully scheduling the bottleneck device(s).
The main components are
- Definitions of fair allocations based on relative usage of the
- A monitoring facility that can identify the bottleneck resource at
the physical level.
- A generic proportional share scheduler for each resource, using
the resource sharing virtual time (RSVT) approach.
- A mechanism to combine the monitoring and scheduling and perform
RSVT scheduling for the system bottleneck.
What's Your System Doing? (2000 – 2008)
Modern computer systems, from individual microprocessors through
operating systems and up to the complete Internet, are very complex.
Thus even their designers cannot claim a real understanding of what
they do and how they operate.
Our project was to develop monitoring tools that look into the system
and record what it really does in everyday use;
currently this is done mainly at the operating system level.
Notable activities include
KLogger continues to be used and ported to new versions of Linux from
time to time.
- Klogger, a kernel logging facility for
- ABPA, an application
behavior patterns analyzer for Windows.
The ParPar Project (1996 – 2005)
The ParPar system was our cluster research platform,
perpetually in advanced stages of implementation.
This was a distributed memory machine based on Pentium PCs connected by
a high speed LAN.
We developed system software that ran above the Unix BSDI
kernel and provided support for parallel processing, including
A brief description of the design is
available on-line, with a link to the full design document and
pictures of the prototype cluster.
- Multiprogramming by means of gang scheduling and
- Gang scheduling extensions taking memory into consideration and
supporting evolving jobs
- Efficient user level communication on a dedicated network
- Effective support for standard I/O, LED I/O, and parallel
- Reliable multicast for control functions
"Parpar" means butterfly in Hebrew; if you're interested in the
fluttery variety, look here.
The BoW Project (1997 – ?)
This project is only superficially connected to parallel systems.
It deals with the creation and maintenance of an on-line bibliography
(BOW stands for bibliography on the web).
The idea is that users will be able to add bibliographical entries,
and index them according to a comprehensive hyper-text-based subject
They can also add comments about existing entries, and links among
Finally, they can give feedback about their satisfaction, and this is
displayed by the system, so as to help identify useful high-quality pages.
A nearly-fully implemented demo
version had been available for much longer than the underlying
technology was expected to last, but the server was finally
decommissioned in 2012...
The SEA Project (1994 – 2002)
This was a joint project with Ronnie Agranat's group from Applied
Physics to develop a prototype optical interconnection network.
Ronnie's group did the optics, based on innovative physical
effects in certain crystals.
We were responsible for the software layers and the development of
The goal of creating a real working parallel computer using this
technology did not materialize.
The Virtual Servers Project (1998 - 2000)
This was a joint project with Danny Dolev's group and several other
groups from the Technion and Haifa University.
The idea was to create a framework where the notion of "server" is
divorced from the notion of "a box".
Thus servers may expand across the network when the load on them
increases (that is, when they get more requests for service), and then
shrink again when they are not needed any more.
Our Technion partners have constructed a CORBA-like environment to
support virtual servers, called
The Makbilan Project (1989 – 1995)
The Makbilan was our previous research machine, and was put
into service in 1989.
This was a home built parallel machine consisting of
16 Processors interconnected by a Multibus II. Each processor
board consists of an Intel 386/387 CPU, 4 Megabytes memory,
cache, and a special MPC chip that controls access to the system
bus. All memory is globally accessible. In addition, there is
a Unix host also connected to the bus supporting Unix operations
for the parallel application.
More details (and pictures!) are available here.
For PUBLICATIONS, see individual home pages
- Prof. Dror Feitelson
– still heading the lab
- Shulamyt Ajami (PhD "maslul yashir") – working at Amdocs
- Omer Levy (MSc) – working at Intel
- Netanel Zakay (PhD '17) – working at Intel
- Eran Avidan (MSc '17) – working at Intel
- Ahmad Jbara (PhD '15) – Netanya Academic College
- Ohad Shai (MSc Tel-Aviv U. '14) –
working at Intel
- David Krakov (MSc '13) –
worked at EMC, then his own startup
- David Mehrzadi (MSc '11) –
working in hi-tech / teaching
- Omer Duskin (MSc '09) –
working in hi-tech
- Michael Gopshtein (MSc '09)
– gone to work at HP
- Tal Ben-Nun (projects)
– army service programming for the plice (???), PhD with Amnon Barak
- Ayelet Israeli (MSc '08)
– gone to brave the snow in Chicago and then Boston
- Igal Zak (MSc Tel-Aviv U. '08)
- Yoav Etsion
PhD '08) – postdoc'd in
Barcelona, then joint CS+EE position at Technion
- Edi Shmueli
(MSc '04 Haifa U.,
PhD '08) – IBM Research Lab in
Haifa, XIV, then Intel, then GM
- Subhash Dhaka (summer intern, '08)
- Keren Ouaknine
(MSc '07) – worked at
Intel, then PhD with Scott Kirkpatrick
- David Talby
(MSc '99, PhD '06)
– once rumored to be seen in uniform, then in the wild Amazon
(.com, not jungle), then Microsoft, then Atigeo
- Dan Tsafrir
(MSc '02, PhD '06)
– postdoc'd at IBM Research (Watson), now on faculty of Technion CS
- Maayan Geffet
(MSc '00, PhD '06 with Ido Dagan) – Dept. Information Science, Bar-Ilan
- Avi Nissimov (MSc '06) –
somewhere in the hi-tech industry
- Eitan Frachtenberg
PhD '04 with Fabrizio Petrini)
– was in Los Alamos, then
in the air over central America,
then at PowerSet, bought by Microsoft, then Facebook
- Yair Wiseman
(postdoc '00-'02) – on faculty of Bar-Ilan, no, Open U.
- David Er-El (MSc '00)
– gone to BandWiz, then CheckPoint, then Australia and back
- Avi Kavas (MSc '00) – gone to Mercury (bought by HP)
- Donny Citron
(MSc, Ph.D. '00)
– gone to IBM Research Lab in Haifa
- Anat Batat (MSc '99) – gone to Mercury (bought by HP), then modu
- Ahuva Mu'alem Weil
(MSc '99) – did PhD with Noam Nisan, postdoc at Caltech, then
at Ort Braude College
- Uri Lublin (MSc '99) – gone to SANgate and back, then
worked on KVM
- Marc Volovic (system programmer '96-'97) – gone to greener pastures...
- Prof. Larry Rudolph
– forgot to return from a sabbatical at MIT in 1995...
- Prof. Marc Snir
– forgot to return from a sabbatical at IBM Research in 1986...
Aug 4, 2005 /