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
().
CURRENT PROJECTS:
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
computer systems.
In particular, our current focus is on empirical software engineering.
We conduct experiments on software development and what makes it hard.
Variable and Function Names
We are all taught to use "meaningful names", but what makes names "meaningful"?
We are looking into the structure of names and how names convey meaning.
Example results are
- A 3-step model of how names are formed.
- Work showing that even single-letter names can convey meaning.
- Work showing that misleading names are not uncommon, and worse than just using a, b, c, etc as names.
- Work on the vocabulary of names.
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.
- Evaluation of the effect of various code constructs on comprehension.
- A quest for better code complexity metrics than the ubiquitous MCC.
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.
This includes
- 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.
PAST PROJECTS:
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 using resampling of workload logs to create modified
workloads for use in evaluations.
- 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 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
pre-defined allocations.
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
bottleneck device(s).
- 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, a kernel logging facility for
Linux.
- ABPA, an application
behavior patterns analyzer for Windows.
KLogger continues to be used and ported to new versions of Linux from
time to time.
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
- Multiprogramming by means of gang scheduling and
adaptive partitioning
- 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
files
- Reliable multicast for control functions
A brief description of the design is
available on-line, with a link to the full design document and
pictures of the prototype cluster.
The BoW Project (1997 – 2005)
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
index.
They can also add comments about existing entries, and links among
related entries.
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
communication protocols.
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
Symphony.
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.
People
- Prof. Dror Feitelson
– still heading the lab
- Aviad Baron (PhD)
- Idan Amit (PhD '24) – worked at Palo Alto Networks, Acumen Labs
- Alexey Braver (MSc '22) – working at NICE
- Omer Levy (MSc '18) – working at Intel
- Netanel Zakay (PhD '17) – worked at Intel, Microsoft, Pagaya
- Shulamyt Ajami (MSc '17 as part of "maslul yashir") – worked at Amdocs, then Lightricks
- 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 co-founder and CTO of Varada
- 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, then at ETH Zurich
- Ayelet Israeli (MSc '08)
– gone to brave the snow in Chicago and then Boston, but in business schools!
- Igal Zak (MSc Tel-Aviv U. '08)
- Yoav Etsion
(MSc '02,
PhD '08) – postdoc'd in
Barcelona, then joint CS+EE position at Technion, co-founder and CTO at Speedata
- 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, then CTO of John Snow Labs
- 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
(MSc '01,
PhD '04 with Fabrizio Petrini)
– was in Los Alamos, then
in the air over central America,
then at PowerSet, bought by Microsoft, then Facebook, then Reed College
- 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...
- Dr. Iaakov Exman
30 Jan 2021 /