Prof. Mark Silberstein explains where hardware and software meet


"I'd like to enable programmers to take advantage of the advanced capabilities offered by the world of hardware, starting now", says Prof. Mark Silberstein, when asked to describe the challenge motivating his research.
Silberstein recently joined the department of Electrical Engineering as a faculty member, after completing post-doctoral studies at the University of Texas in Austin, where he worked with Prof. Emmett Witchel.
Silberstein's research belongs to the wide world of systems research. This title encloses several topics such as network management, distributed systems, storage systems, operation systems and hardware architecture.
Software chasing hardware
During the interview, Silberstein describes the interaction between the world of hardware and the world of software. He emphasizes the difficulty encountered by the world of software in keeping up with the advances in the world of hardware. "The difficulty", he says, "lies in the fact that the world of software cannot cope with the complexity offered by the world of hardware. Traditional operating systems are largely responsible for the situation, since they do not provide the complex interface required for working with advanced processors." Silberstein goes on to describe the current situation: "Operating systems are supposed to hide the complexity of the hardware and provide a uniform, easy to program, interface. However, right now they lack systematic, comprehensive support of heterogeneous hardware systems – systems with a number of different processors, each intended for a different task. The lack of support of these processors drives programmers to build basic software components, such as file access services, on their own. Actually, the situation today resembles the "stone age" of computer systems in the 1960's, when operating systems had not yet become a standard component, and every programmer had to be an expert in order to write even the simplest software."
To emphasize the problem, Silberstein suggests we examine the family of graphic processors – GPUS, whose development began back in the 1970's. These processors where intended for efficient processing and presentation of graphic objects. They were widely used in graphic applications, but despite their computational abilities they were hardly introduced into other applications before the end of the 1990's. Then, as part of the search for parallel processors, it became clear that the graphic processors' computing abilities could be harnessed for tasks beyond the world of graphics, such as linear algebra operations, for example. A genuine breakthrough in the use of these processors took place in 2007, when NVIDIA presented CUDA, a programming environment intended for GPUs. This paved the way for GPU computing, which uses graphic processors for general operations, similar to those carried out by the "traditional" processors (CPUs). Silberstein points out that the breakthrough was made possible by the new interface, which exposed the advanced hardware to a wide audience of users.
The secret is accessibility
This understanding, that providing accessibility through a suitable environment is the key to utilizing the abilities offered by the world of hardware, has been accompanying Silberstein since his doctoral studies. As part of his work he developed Superlink-online, a sophisticated distributed system used for statistical analysis of biological data, enabling identification of genetic mutations. The system's uniqueness, he explains, lies in combining complex and advanced technologies (multiple processors, support of communication between them, coping with unreliable data, etc.) with a simple, convenient interface. These result in an attractive, accessible system, which is still used in hospitals and universities around the world.
Describing his approach to research, Silberstein emphasizes the need for "a new theory of operation systems". This need arose with the development of different kinds of processors, in addition to the "traditional" processor. Among these processors are the aforementioned graphic processors, as well as digital signal processors (DSPs), FPGAs and SOC accelerators.
Silberstein's vision includes an operating system that treats all the processors in the computer as equals in terms of access to resources, communication, etc. The programmer using the system does designate certain parts of the software for a specific processor, but technical aspects such as communication and file management are taken care of by the operating system. Thus, a standard abstraction that hides the technical difficulty in using advanced processors is obtained. Such an interface will enable a wide audience of programmers to take advantage of new hardware capabilities without considerably changing their working habits.
As a part of his research, Silberstein collaborates with companies and academia members. Many of the projects he's involved in concern applications that take advantage of the capabilities of graphic processors. Lately, he received a prize from Yahoo!, and will soon be developing data mining algorithms on advanced processors together with the company's researchers.
Being a systems research person, Silberstein's research spans a variety of areas, starting with hardware, through software, all the way to applications. To summarize the conversation, he notes that "the department of Electrical Engineering at the Technion is a leader in this area, and therefore I was happy to join it."