Interview with Dr. Moshe Bar
Behind openMosix technology, we can find the work of many intelligent and hardworking people. Recently, I had the chance to interview Dr. Moshe Bar, openMosix project leader, by e-mail. He spoke about his educational background, his interest in computer science and, of course, his work on the openMosix project. Here is the text of our interview.
Linux Journal: Please tell us your educational history.
Moshe Bar: My educational history is a B.Sc in math and an M.Sc and Ph.D. in computer science. I also am teaching at Tel Aviv University and the UN Atomic Agency. I am a permanent researcher at the Italian National Institute for Physics of Matter.
LJ: Were you first interested in math or computer science? How do you see the correlation between math and computer science, especially when you develop software such as openMosix?
MB: Everything is about math. Math is a formal language of symbols to describe our perception of reality and, by extension, the world. Algorithms are pure math. Programming is applied math.
LJ: What are your current interests?
MB: My interests are clustering, math, Harleys, chess and literature.
LJ: Do you think a programmer or software developer must have a formal education in computer science/engineering? Does this affect how a programmer thinks and solves problems?
MB: It certainly helps to know the fundamentals of computer science to be a good programmer. I started programming operating systems when I was 13, and I find that I now am addressing (with the same rate of success or failure, as you wish) the same issues as [I was] back then. I remember for instance back then, when I was a young kid of 13 or so, I was investing a lot of time in a good algorithm for generating non-colliding hashes. Today I am still fascinated by this subject and find that some of my algorithms from back then were not at all bad.
LJ: What was your goal in starting the openMosix project?
MB: I started openMosix because, as a prior project manager of Mosix, I could not agree to going non-GPL. I also didn't agree with how the project was managed by the co-manager at the time.
LJ: Why did clustering become an interest? Is it really difficult to create cluster middleware such as openMosix, considering the fact that few people or vendors create clustering software? What is your suggestion for developers who want to build a program similar to openMosix?
MB: Most "clustering" companies really are cluster management companies. The reason why so few do real clustering engines is it is difficult to do them well. A few dozen Ph.D.s were done on openMosix over the last 20 years, and it shows in the quality of the code and its efficiency during operation.
LJ: What is your experience as CTO of Qlusters, Inc.?
MB: My experience as CTO of Qlusters is open source gives you a lot of credibility in commercial environments and even can bring you clients. Most of our clients at Qlusters came to us because of my involvement with open source.
LJ: Your company, Qlusters, creates a great solution. Can you offer some overview of how ClusterFrame was created? Do you bring some technology from ClusterFrame to openMosix? Or has openMosix influenced ClusterFrame?
MB: The only shared component between ClusterFrame and openMosix is the process migration, which is the same code in both solutions. Everything else is different. ClusterFrame addresses business applications [such as] databases and trading systems, whereas openMosix addresses scientific applications.
LJ: Who are your idols? Do they influence your thinking, specifically involving openMosix?
MB: People who inspire me today are Pico della Mirandola (after whom the picometer is named), for his remarkable memory and good use of it. David Ben-Gurion, because he showed that even the most seemingly impossible dream can become a reality if enough people believe in it. I admire Paul Auster for his ability to write stories that somehow become personal to each reader, each story in a different way. I admire my parents for the hardship they endured to make me possible.
LJ: From the start until now, openMosix has grown fast. Many people have made contributions, including Matthias Rechenburg with openMosixView. How do you develop relationships with them? How do you manage the openMosix project with so many diverse talents? Do you give them any special direction?
MB: Managing programmers is not [the same as] managing bank employees. Each programmer wants his talents recognized and his/her ego massaged. That's mainly what I do as a project manager--I manage egos. And I set the overall strategic direction. I also do development work myself. It's much easier to get recognition from your developers if you yourself are a good developer.
LJ: openMosix is geared towards SSI (single system image), right? I see that openMosix faces two great challenges: implementing network RAM (aka distributed shared memory) and socket migration. What is the current status of each feature? Do you plan to recruit the MAASK group as a core openMosix developer, knowing that they contributed to the shared memory implementation? Can you explain your plan to implement gradually these two features?
MB: openMosix already is an SSI cluster. Network RAM will not make it more SSI than it already is, but I agree it would be a nice feature to have. DSM is a much more complex issue. It's easy to make DSM, but it is extremely hard to make good DSM. I would rather have no DSM than bad DSM. So, yes, I am interested in working with the MAASK group and others, and I hope they continue to send in patches. I will accept the DSM patch into openMosix the moment it is stable and increases the overall performance of an openMosix cluster.
LJ: PC clustering, we must admit, gained popularity when Donald Becker began experimenting with regular PCs at NASA, a project that came to be known known as Beowulf. What are your thoughts on Becker's efforts? Does Becker's work influence you when you are involved in a clustering project?
MB: I have talked to Donald a few times here and there. We have different spins on clustering. Actually, a lot of openMosix users run MPI or PVM (Beowulf) on top of openMosix, and they get along really well. I am sorry to see that his company (Scyld) didn't have the success he hoped for, but he is such a bright mind he can have success in other areas for sure.
LJ: Have you heard of or tried Compaq's Non Stop Cluster? It also started an openSSI project. Do you have any thoughts about the project? Do you plan to incorporate its algorithm into openMosix?
MB: Actually, openSSI uses parts of openMosix, which is perfectly fine. I am interested in what the project is doing purely out of academic curiosity. We do have contact from time to time, but we are not strictly related.
LJ: You also wrote Linux Internals. What was your mission with this book? Can you tell a little about your effort to write it?
MB: With Linux Internals I wanted to give experienced programmers [easy access] to the internals of the Linux kernel, without scaring people off. A lot of people liked the book for this reason. It was never meant to be an exhaustive kernel commentary, so people expecting that should additionally buy Prof. Bovet's book Understanding the Linux Kernel, 2nd Edition. I did contribute to his book as well, and actually I gave a speech to his class last year.
I also wrote three more books, and I am currently writing the 3rd edition of the extremely successful book OpenSource Development with CVS.
LJ: You have so many activities--lecturer, researcher, writer, developer, etc. How do you manage your time? Do you ever feel stressed with all of these jobs? What keeps you doing all of them?
MB: I certainly keep myself busy and don't have much spare time. But I like it this way; I like doing interesting things. I don't sleep more than four hours a day, and you can jam a lot of stuff into 20 hours if you are efficient about time. I have always tried to be very efficient with my time and have gotten used to it. I also travel a lot, and in those long hours in airplanes and airports I do stuff [for which] I don't need a phone, the Internet or a cluster. It works out quite well, really.
LJ: What is your relationship with the MOSIX team, especially Prof. Amnon Barak? I remember you were once a member of the MOSIX team. Do you still have discussions with them, perhaps sharing knowledge or innovations?
MB: We have severed all communication. Some of his students are contributors to openMosix, but that's all.
LJ: Several companies now are funding the openMosix project, including HP--what is your relationship with them? Do they also contribute to openMosix? Are there business deals between openMosix team and them?
MB: Relationships with commercial ventures, such as HP, are based purely on the idea that whereas they are full of cash, we are not. Therefore, I had the idea of having them give me a tiny little part of the cash to help out the project, that's all.
LJ: openMosix is starting IA-64 porting. What is your comment on the process? Do you think the porting will be smooth? How about porting to Opteron (AMD 64 bit)? How will you manage these two ports?
MB: We actually have finished porting to IA-64. We will now decide whether to port to Opteron or to Itanium 2. It depends on how much contribution we can get from either team.
LJ: openMosix is tightly integrated with Linux. In fact, the benefit each other quite a bit. Is there any plan to merge openMosix into official Linux kernel tree? How about porting to another platform, such as *BSD, Mac or maybe Windows?
MB: I don't want to merge openMosix into the kernel. I have talked about it with Linus, Alan Cox, Ingo Molnar and others, and I feel it is best to keep the two separate. I would love to port openMosix or part of its functionality to Windows. But I will wait for Microsoft to approach us with a proposal.
LJ: As far as I know, openMosix has become the number one open-source project in SSI clustering. What is your goal with this project? Do you want to keep it under the GPL? What would you say if someone wanted to start a descendant of this project, maybe use some part of openMosix technology as other SSI middleware?
MB: openMosix is indeed the number one open-source project for clustering, in terms of both installed base and growth. It will stay open source as long as I am managing it. If someone wants to fork openMosix, good luck with it. It's a lot of work to manage an open-source project, and the rewards are minimal.
LJ: Many people now use openMosix. Do you have a plan to write some technical documentation for it, maybe to explain process migration and its algorithm, the DFSA algorithm, in more detail? For example, I still hardly understand how process migration is implemented in openMosix's source code.
MB: There is a lot of documentation on our web site, and we explain the process migration there. I wrote several papers and articles about openMosix. The process migration is itself quite simple, we simply move the VMA from kernel to kernel and, on demand, move more VMAs. System calls are either shipped back home or executed locally, in some cases, if the files are locally available (DFSA). It doesn't get much more simple than that. The devil is in the details.
LJ: Cluster Knoppix, PlumpOS and Gentoo incorporate openMosix into easy-to-deploy packages. Is this purely the authors' idea, or do you have early talks with them? What is your perspective on these package? Any plans to make one of them an official partner of the openMosix distribution?
MB: I was aware of their efforts and helped where I could. Gentoo founder Daniel Robbins and I are good friends, and we talk regularly. No need to make any of them a part of the openMosix distribution, however, because we are not a distribution. They are distributions, and we are a part of them--it's much easier this way.
LJ: How does your family feel about your work? Do you talk to them a lot about your activities? Do you hope one of your children someday follows in your path?
MB: We have no kids so far; we got married last year. My family knows that I do something with a lot of public coverage, because they frequently write articles about what I do in newspapers in my country. But, they don't really understand what it is exactly. We talk about other things when we meet. The kernel is not a core interest for them.