Borja's University of Chicago page
Welcome!
You have arrived at Borja Sotomayor's webpage at the University of Chicago. I am a 4th year PhD student in the Department of Computer Science. In particular, I am a member of the Distributed Systems Laboratory, and my advisor is Ian Foster.
I'm originally from Bilbao, a wonderful city in the Basque Country region of Spain.
This page includes all my university-related stuff (CV, publications, projects I'm working on, etc.). If that kind of stuff bores you, then you might be more interested in visiting my weblog: BorjaNet (beware, it's in Spanish!) or my gallery.
- Teaching
- Research interests
- Current projects
- Publications and Talks
- Workshops and tutorials I've taught
- Curriculum Vitae
- Past projects
- Other interests
- Miscellaneous
- Contact information
Teaching
- I am a Teaching Consultant at the University of Chicago's Center for Teaching and Learning (CTL). If you are a graduate instructor (TA, lecturer, etc.) at the University of Chicago, and want to enhance the learning experience of your students and get feedback on your teaching, take a look at all the cool resources at the CTL, or sign up for an Individual Teaching Consultation.
- CMSC 23500 - Introduction to Databases (Spring 2008). Teaching Assistant. I am in charge of discussion groups, labs, and homework grading. More details in the course website.
- CMSC 15200 - Introduction to Computer Science 2 (Summer 2005, 2006, and 2007). Lecturer. This course provides a (highly practical) introduction to computer programming using the C/C++ language, with emphasis on developing general programming skills and understanding the object-oriented paradigm. More information in the course websites: [2005] [2006] [2007]
- CMSC 16200 - Honors Introduction to Computer Science 2 (Winter 2006 and Winter 2007). Lab Instructor. The labs for this course allow students to practice the languages, libraries, etc. explained in the lectures. As such, the labs provide an advanced introduction to common UNIX tools and languages such as BASH, AWK, C, lex/yacc, etc. More details in the lab websites: [2006] [2007].
Research interests
The short answer: I am interested in virtual machine-based resource provisioning models (where "resource" includes hardware, software, and time). Since a lot of my work involves writing resource scheduling code, my secondary interests include parallel job scheduling and scheduling performance metrics.
The long answer:
The problem of provisioning computational resources to users has resulted in several approaches that target different usage scenarios. For example, when a scientist requires computational resources for an application, he can submit it as a batch job to a local cluster, or to remote resources through grid interfaces. When a freelance web developer needs a web server for months, or perhaps years, he can lease a dedicated server in a datacenter. When a college instructor wants to teach a course on parallel programming, and needs a small dedicated cluster for only a few hours each week, he can obtain one from Amazon EC2. However, these solutions are specialized to a specific usage scenario, only partially supporting other usage patterns (if at all), and there is currently no resource provisioning model, or system, that can support all these usage scenarios at the same time.
My research focuses on developing a resource provisioning model for remote resources, such as those found on a grid, that uses leases as a fundamental abstraction (as opposed to the widespread job abstraction used on grids, where resource provisioning happens as a side effect of submitting a job). A lease is a negotiated and renegotiable agreement between a resource provider and a resource consumer, where the former agrees to make a set of resources available to the latter, based on a set of lease terms presented by the resource consumer. The lease terms encompass the hardware resources required by the resource consumer, such as processors, memory, network bandwidth, etc., a software environment required on the leased resources, and an availability period, during which the hardware and software resources requested by the user are guaranteed to be available. Part of my work involves developing scheduling algorithms that can efficiently support workloads that interleave different types of availability periods, including best-effort workloads, exact availability periods (with a specific start and end time), urgent availability, etc.
My work uses virtualization technologies to implement leases. Virtual machines (VMs) are promising since they can (1) allow physical hardware to be carved up between multiple leases, which will be isolated from each other, (2) have enforceable resource allocations, (3) support custom software environments, and (4) be suspended, potentially migrated, and resumed. However, additional challenges arise when using VMs, mostly stemming from the different types of overhead involved in using them, such as the overhead of managing and deploying a large quantity of potentially large VM images. Part of my work involves analysing and quantifying the tradeoffs of using VMs, and taking them into account in scheduling algorithms so they will have a minimal impact on performance.
For more details, please see my publications.
Current projects
Haizea
Haizea is an open-source VM-based lease management architecture (if that sounds like a mouthful, take a look at the What is Haizea? page). In a nutshell, Haizea is a piece of software that, in combination with the OpenNebula virtual infrastructure manager, can be used to manage a Xen or KVM cluster, allowing you to deploy different types of leases that are instantiated as virtual machines (VMs). Haizea can also be run in simulation, providing a platform for experimenting with scheduling algorithms that depend on VM deployment or on the leasing abstraction. I am the lead developer for the Haizea project.
Reservoir (EU FP7 project)
I am currently doing a summer internship for Reservoir, a project that "will enable massive scale deployment and management of complex IT services across different administrative domains, IT platforms and geographies". As part of my internship, I am working with the Distributed Systems Architecture group at the Universidad Complutense de Madrid. My work revolves mainly around the Haizea project mentioned above.
Publications and Talks
Please see the publications page.
Workshops and tutorials I've taught
Teaching in the American Classroom, a panel discussion (I was one of three panelists in this session) in the 2007 Workshop on Teaching in the College, University of Chicago. September 18 and 19, 2007.
Entornos Grid Basados en Globus Toolkit 4. July 4-6, 2007. Universidad Complutense de Madrid (Madrid, Spain). 15-hour course on GT4 service programming with the Introduce IDE. This course is a part of Curso Superior de Administración, Explotación y Programación de Sistemas Grid (3ª Edición), a 100-hour summer course on Grid Computing.
Computación Grid. June 18-29, 2007. Universidad de los Andes (Bogotá, Colombia).
The FileBuy Globus Based Resource Brokering System - A Practical Example. September 15, 2006. GlobusWORLD 2006, Washington D.C. (USA). [website]
Entornos Grid Basados en Globus Toolkit 4. July 3-7, 2006. Universidad Complutense de Madrid (Madrid, Spain). 20-hour course on GT4 programming. This course is a part of Curso Superior de Administración, Explotación y Programación de Sistemas Grid (2ª Edición), a 100-hour summer course on Grid Computing.
Entornos Grid Basados en Globus Toolkit 4. July 6-12, 2005. Universidad Complutense de Madrid (Madrid, Spain). 25-hour course on GT4 programming. This course is a part of Curso Superior de Administración, Explotación y Programación de Sistemas Grid, a 100-hour summer course on Grid Computing.
Evolución de Globus. June 23, 2004. Instituto de Física de Cantabria (Santander, Spain). 2-hour presentation on the evolution and future trends of the Globus Toolkit. This presentation was a part of Grids y e-Ciencia, a 30-hour postgraduate course on Grid Computing. [slides]
Sistemas Grid Basados en GT3. March 3-5, 2004. Centro de Supercomputación de Galicia (Santiago de Compostela, Spain). 15-hour course on GT3 programming. [slides 1 2 3 4]
Curriculum Vitae
[Download CV] Please note that I do not update the CV as frequently as this website (CV last updated: 03/12/08). Although an updated CV is available upon request, please take into account that I am currently not accepting employment solicitations.
Past projects
Workspace Service
I was part of the group that develops the Workspace Service component of the Globus Toolkit 4. In particular, I was involved in VM-based "virtual workspaces". To quote, the Workspace Service website: "A virtual workspace is an abstraction of an execution environment that can be made dynamically available to authorized clients by using well-defined protocols. The abstraction captures resource quota assigned to such execution environment on deployment (such as CPU or memory share) as well as software configuration aspects of the environment (such as operating system installation or provided services). The Workspace Service allows a Grid client to dynamically deploy and manage workspaces."
CrossGrid
I was a Research Associate for a short while (with affiliation to the Instituto de Física de Cantabria in Santander, Spain). My main job was writing and proofreading tutorial material.
BOOLE-DEUSTO
BOOLE-DEUSTO is a software aid for Digital Electronics courses. It helps and guides the student through typical exercises: minimization of boolean functions, Veitch-Karnaugh maps, design and simulation of finite-state machines, circuit diagrams (combinational and sequential), etc. I was involved in this project from 2000 to 2004 as Lead Programmer. The project was developed at the University of Deusto and lead by Professor Javier García Zubía.
Other interests
I am also very interested in the following, although they're not part of my research:
- Free Software. I strongly support and believe in Free Software and, in fact, I am a card-carrying associate member of the Free Software Foundation. Although the Open Source movement is also appealing in some aspects, I prefer to see free software as a mainly ethical issue, not a purely technical one. I use Debian GNU/Linux (Sid) exclusively.
- Online rights. I have been interested in this practically since the first time I got online (back in 1996). Although I am mainly concerned with the protection of free speech online, lately I have also become very interested in online privacy. Yup, you guessed it, I'm also a member of the Electronic Frontier Foundation.
- Web programming and Web standards. A long, long time ago (from 1997 to 1999, if memory doesn't fail me) I was a freelance web designer. I worked on some pretty interesting projects but, alas, then I started studying Computer Engineering and lost my design prowess. Fortunately, I started working as a Web analyst and programmer at my university from 1999 to 2003 (while studying towards my Engineering degree) so I had the chance to learn a lot about web applications and web standards. Although I no longer work on web projects, I do try to keep up with evolving web standards (specially XHTML, CSS, and XML) and still keep some knowledge of PHP and Apache buried somewhere in my brain.
- Typography and document composition. LaTeX and DocBook are my favorite document composition languages. I have some moderately strong opinions on typography and typesetting, and usually can't bear to watch 'ugly' documents for long. For a longer diatribe, take a look at my article Aberraciones tipograficas (in Spanish).
- Software as a teaching aid in higher education. My years in the BOOLE-DEUSTO project made me appreciate how a student's learning experience can be greatly enhanced with the use of proper software. It also altered my perception of teaching, and ever since my involvement in BOOLE-DEUSTO I try to complement my students' learning experience with as much interactive material as possible.
- Boolean minimization algorithms. Another consequence of working in the BOOLE-DEUSTO project is that I learned a lot about boolean function minimization algorithms. Since finding an optimal minimization is NP-complete (it is akin to the minimal cover problem), we had to come up with all sorts of heuristics which made the algorithms incredibly fun to implement (we implemented them using C++ and relying heavily on the Standard Template Library). I guess I'll never see minimization algorithms again, but still get oddly enthralled when I hear about a new heuristic to solve the minimal cover problem.
Miscellaneous
Here's some miscellaneous stuff which you might find amusing (or not) and which might reveal a little bit more about me (or not).
My geek code
-----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/E/ED/IT d-(--) s:-(:) a- C++++$ UL++$>++++ P+ L+++$ !E- W+++ N(+) !o K? w--- !O !M !V PS++ PE- Y PGP t(+) !5 !X !R tv(+) b+(++)$ DI(+) D+ G+ e+++>++++ h r y? ------END GEEK CODE BLOCK------
My favorite blogs
WIL WHEATON dot NET. Great insight into the life of a struggling actor and (more recently) a successful author.
Kirai.NET - Un geek en Japón [in Spanish]. Extremely interesting blog which showcases the cultural differences a European finds while living in Japan.
Planet e-GHOST [in Spanish]. Blogs written by members of e-GHOST (see below).
Slashdot. News for nerds. Stuff that matters.
Barrapunto [in Spanish]. The Spanish Slashdot.
The Leaky Cauldron. A must-read for all muggles.
You can also visit my Bloglines public profile to see all the blogs I'm subscribed to.
Sites I visit practically every day
CNN.com (International edition). To keep informed of what's happening around the world.
El Correo Digital. To keep informed of what's happening back at home.
Daryl Cagle's Professional Cartoonist's Index. For my daily dose of satirical humor.
Bloglines. To keep track of all my favorite blogs.
Miscellaneous miscellaneous stuff
University of Deusto. Ah, yes, my alma mater :-) I studied Computer Engineering in Deusto (1998-2003) and was a junior faculty member in the Department of Software Engineering (2003-04) before coming to Chicago.
e-GHOST (ESIDE's GNU, High-tech, & Open Source Team). This is the University of Deusto's Free Software group (yes, I know, the acronym is confusing), whose mission is to keep the academic community informed of the benefits of Free Software. I was very active in the group for a couple years (organizing events, summer courses, etc.) but since I am now a considerable distance from Deusto, I merely lurk around the mailing list.
Contact information
On the University of Chicago campus, I am located in Ryerson 257-C. Although I am usually in my office during regular business hours, the best way to contact me is through e-mail: borja AT cs DOT uchicago DOT edu. I compulsively check my e-mail several times a day and usually respond within 24-48 hours. If you want to drop by my office, please let me know in advance to make sure that I am available that date/time.