#!/usr/bin/perl -w # Sitaram Iyer's CV in perl format. Run to generate txt, ps, pdf. todo html. # read raw cv, expand use Text::Tabs; my $rawcv = join("", expand()); # global fixes $rawcv =~ s/ *(Summary:)(.*?)\n([\nA-Za-z])/($3 eq "\n" ? "" : "$3")/gse; $rawcv =~ s/^#.*//gm; $rawcv =~ s/\n\n\n+/\n\n/gs; $\ = "\n"; print STDERR "Writing sitaram-cv.txt"; open FP, "| expand >sitaram-cv.txt" or die "open: $!\n"; print FP $rawcv; close FP; print STDERR "Writing sitaram-cv.ps"; open FP, "|tee .tex | latex >.log 2>&1 && dvips -tletter -o sitaram-cv.ps texput.dvi >>.log 2>&1 && rm -f texput.*" or die "latex: $!\n"; #open FP, "|less" or die "less: $!\n"; select FP; $cv = $rawcv; sub latex_header { # skip header. generate custom header in latex. no biggie. print <<'EOF'; \documentclass[11pt]{article} \usepackage{a4wide} \usepackage{times} \usepackage{fancyhdr} \pagestyle{fancy} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} \lfoot{\thepage} \cfoot{} \rfoot{Sitaram Iyer} \thispagestyle{empty} \pagenumbering{roman} \setlength{\oddsidemargin}{+0in} \setlength{\evensidemargin}{+0in} \setlength{\textwidth}{6.5in} \setlength{\topmargin}{-.4in} \setlength{\textheight}{9.0in} \setlength{\headheight}{0in} \addtolength\parskip{1ex} \def\labelitemiii{$\diamond$} \newfont{\cutess}{cmssbx10 at 12pt} \newfont{\cutessbig}{cmssbx10 at 20pt} \begin{document} \ \\[1em] \centerline{\LARGE\bfseries \cutessbig Sitaram Iyer}\vspace{2ex} %\centerline{\large Ph.D. student, Rice University} EOF } sub latex_contactinfo() { local $_ = <<'EOF'; \vspace{3ex} \centerline{\begin{tabular}{llll} Email: & \hspace{-1em} ssiyer@cs.rice.edu & \hspace{2cm} & Dept. of Computer Science \\ Web: & \hspace{-1em} http://www.cs.rice.edu/~ssiyer && Rice University \\ Phone: & \hspace{-1em} 832-865-3139 (cell) && MS-132, 6100 Main Street \\ Fax: & \hspace{-1em} 713-348-5930 && Houston, TX 77005-1892 \\ \end{tabular}} EOF s/\~/\\textasciitilde /g; # ~ s/%/\\%/gs; s/#/\\#/gs; print; } my $level = 0; my @listtype = (); sub closelists { print $listtype[--$level] while ($level > $_[0]); } sub openlist { closelists $_[0]; while ($level < $_[0]-1) { $listtype[$level++] = "\\end{trivlist}"; print "\\begin{trivlist}\\item"; } if ($level < $_[0]) { $fitem = 1; $listtype[$level++] = "\\end{$_[1]}"; print "\\begin{$_[1]}"; } } $cv =~ s/%/\\%/gs; $cv =~ s/#/\\#/gs; $cv =~ s/\~/\\textasciitilde /g; # ~ $cv =~ s/(Dr\.) ([A-Z])/$1\\ $2/g; # papers $cv =~ s/(\n\s*\d\.\s+)([^\.]*)\./$1 \{\\em $2.\}/gs; # summaries - removed above!! #$cv =~ s/(Summary:)(.*?)(\n\n)/\\vspace{1ex}\\hspace{.06\\linewidth}\\parbox{.90\\linewidth}{\\footnotesize {\\bf $1} $2}\\vspace{1ex} $3/gs; #$cv =~ s/(Summary:)(.*?)(\n\n)//gs; # parindent #$cv =~ s/Anticipatory.*implemented.*tested/\\vspace{1ex}\\hspace{1em} $&/; #$cv =~ s/Available upon request/\\hspace{1em} $&/; $cv =~ s/Conducted part of this research/ \\hspace{1em} $&/; $cv =~ s/to the server context./ $& \\vspace{.5ex} /; # projects: $cv =~ s/^(\s*\+\s*)(.*)$/ $1\{\\bf $2\}\\\//gm; # replace header $cv =~ s/^-----*\n.*?\n-----*\n//s; latex_header(); #sub endmini { if ($mini) { print "\\end{minipage}"; $mini = 0; }} foreach (split /\n/, $cv) { chomp; s/(\s*\*\s*)(.*[^\s])\s\s\s\s*([^\s].*)/$1\{\\bf $2\}\\hspace{\\fill}{\\em $3}\\par\\vspace{-1ex}/; # flush s/(.*[^\s])\s\s\s\s*([^\s].*)/$1\\hspace{\\fill}{\\em $2}\\par\\vspace{-1ex}/; # flush s/^\s*(Thesis)\s+-/ {\\em $1}\\\/\\ \$\\;\$:/; s/^\s*(Project)\s+-/ {\\em $1}\\\/\$\\,\\;\$:/; s/^\s*(Advisor)\s+-/ \\newline{\\em $1}\\\/:/; s/^\s*(Mentor)\s+-/ \\newline{\\em $1}\\\/\$\\;\$:/; if (/^[^\s]/) { # sections closelists 0; # subsections s/([^\(]*)(.*)/ \\subsection*{\\cutess $1 \\rm\\hspace{\\fill}\\normalsize$2}/; if (defined($1)) { $sec = $1 } # marginpar. use with # \setlength{\oddsidemargin}{+1in} # \setlength{\textwidth}{5.5in} #s/([^\(]*)(.*)/ # \\reversemarginpar \\marginpar{\\sf\\bfseries $1} # /; # minipage #endmini(); #$mini = 1 # if (s/([^\(]*)(.*)/ # \\begin{minipage}{.3\\linewidth} # \\subsubsection*{\\sf\\bfseries $1} # \\end{minipage} # \\begin{minipage}{.7\\linewidth} # /); print $_; next; } unless (defined($sec)) { # contact info unless ($contact) { latex_contactinfo(); $contact = 1; } next; } my $itemsep = ""; if ($sec eq "Honors") { $itemsep = '\\\\[-1.5em]'; } #closelists 0 if (/OS-related projects.*undergraduate/); my $item = 0; $fitem = 0; if (/^(\s*)(\*)(.*)/) { $item = 1; openlist 1, "itemize"; } elsif (/^(\s*)(\d\.)(.*)/) { $item = 1; openlist 2, "enumerate"; } elsif (/^(\s*)(-)(.*)/) { $item = 1; openlist 2, "itemize"; } elsif (/^(\s*)(\+)(.*)/) { $item = 1; openlist 3, "itemize"; } if ($item && $fitem) { $fitem = 0; $_ = "$1\\item $3"; } elsif ($item) { $_ = "$1$itemsep\\item $3"; } print $_; } #endmini(); closelists 0; print <<'EOF'; \end{document} EOF close FP; #print STDERR "Skipping sitaram-cv.pdf"; print STDERR "Writing sitaram-cv.pdf"; system("ps2pdf sitaram-cv.ps"); __DATA__ -------------------------------------------------------------------------- SITARAM IYER -------------------------------------------------------------------------- ssiyer@cs.rice.edu Dept. of Computer Science http://www.cs.rice.edu/~ssiyer Rice University Ph : 832-865-3139 (cell) MS-132, 6100 Main Street Fax: 713-348-5930 Houston, TX 77005-1892 Objective Research or advanced development in areas relating to operating systems (particularly resource management, memory and I/O systems, storage and network servers), and distributed systems. Education * Rice University Houston, Texas Ph.D. in Computer Science expected in June 2003 Thesis - Application-assisted physical memory management Advisor - Dr. Peter Druschel * Rice University Houston, Texas M.S. in Computer Science Jan 2001 Thesis - Anticipatory disk scheduling Advisor - Dr. Peter Druschel * Indian Institute of Technology Bombay, India B.Tech. in Computer Science and Engineering May 1998 Thesis - Xority: A measure of separability of training sets for neural network size estimation Advisor - Dr. Pushpak Bhattacharyya Research Experience * Rice University Houston, Texas Graduate assistant Aug 1998 - present - Researched operating systems, with a focus on hard resource management problems arising in modern systems. + Application-assisted physical memory management: Leveraged the ability of many modern software applications to trade off memory consumption for performance. Designed an OS facility that notifies elastic applications about the severity of memory pressure, allows them to adapt to changing memory availability, and enables a powerful mechanism of user control over memory allocations. + Transparent superpage support in operating systems: Collaborated with Juan Navarro in developing a practical solution to the decade-old problem of superpage support in operating systems. Achieved sustained speedups often exceeding 30% with our FreeBSD/Alpha implementation. + Anticipatory disk scheduling: Identified a long-standing problem in OS disk subsystems, where synchronous I/O induces a state of `deceptive idleness'. Solved it with a novel disk scheduling paradigm that deliberately delays disk requests before service. Implemented this scheduler in FreeBSD, and experimented with file servers, web servers and databases to observe 30-60% performance improvements in many cases. Results of this work are being implemented and tested by independent parties for inclusion in Linux-2.6. + Resource management for server QoS: Collaborated with Mohit Aron in designing a system that enables web and proxy server operators to ensure a probabilistic QoS level for web services co-hosted on servers. Applied methods such as admission control, feedback-based scheduling for multiple resource classes, and resource usage monitoring and readjustment. - Contributed to Dr. Peter Druschel's Pastry research project on peer-to-peer systems, by designing the Squirrel web cache, designing and coding parts of the FreePastry software base, reviewing research papers, and setting up experimental hardware and software. - Participated in systems-related course projects and minor research projects: memory management in the IO-Lite unified buffering system; enabling architecture heterogeneity in the TreadMarks DSM; multipath routing for network QoS; parallel profiler for programs written in pthreads; DSR performance under statistical channel fading models; transparently enabling SSL for conventional applications. * Microsoft Research Lab Cambridge, England Summer Intern July-Sep 2001 Project - Squirrel: A decentralized peer-to-peer web cache Mentor - Dr. Antony Rowstron - Designed, implemented, experimented with, and authored a paper on a peer-to-peer web cache named Squirrel (published in PODC 2002). Thus contributed to the ongoing peer-to-peer applications effort by exploiting a novel design space tradeoff. * Massachusetts Institute of Technology Cambridge, MA Visitor Feb-May 2001 - Conducted part of the anticipatory scheduling research at MIT, while accompanying my advisor during his sabbatical. * Bhabha Atomic Research Center Bombay, India Summer Intern Aug-Sep 1997 Project - Parallelization of neural networks for handwritten character recognition Mentor - Dr. S. M. Mahajan - Devised and evaluated two novel parallelization schemes on the ANUPAM parallel processing system, for distributing neural nets that implement modern handwriting recognition techniques. * Indian Institute of Technology Bombay, India Undergraduate student Aug-Nov 1996 - Took up several, mostly extra-curricular OS-related projects: implementing a basic microkernel for the i386 architecture; writing a Linux file system to perform package management; exploring new parallel disk I/O techniques; network-booting DOS on diskless workstations. Papers (copies available at http://www.cs.rice.edu/~ssiyer/r) * Peer-reviewed publications: 1. Practical, transparent operating system support for superpages. Juan Navarro, Sitaram Iyer, Peter Druschel, Alan Cox. Published in the Symposium on Operating Systems Design and Implementation (OSDI), Dec 2002, Boston, MA. Summary: Most modern processors support the use of multiple memory page sizes that may be used to minimize TLB misses and transparently improve application performance. Supporting superpages poses several challenges to the operating system, such as superpage allocation and promotion tradeoffs and fragmentation control. This work experimentally analyzes these issues, proposes the design of a practical solution that includes a contiguity aware page replacement scheme, and implements it in the FreeBSD OS on the Alpha CPU. Evaluations on a range of real workloads demonstrate sustained speedups often exceeding 30%. 2. Squirrel: A decentralized peer-to-peer web cache. Sitaram Iyer, Ant Rowstron, Peter Druschel. Published in the Symposium on the Principles of Distributed Computing (PODC), July 2002, Monterey, CA. Summary: Squirrel is a peer-to-peer web cache, based on the idea of enabling web browsers on desktop machines to share their browser caches. This results in an efficient, highly scalable, self-organizing and fault-tolerant web cache without need for dedicated hardware or the corresponding administration cost. It is shown to impose negligible load on the participating machines. 3. Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O. Sitaram Iyer, Peter Druschel. Published in the Symposium on Operating Systems Principles (SOSP), Sep 2001, Chateau Lake Louise, Banff, Canada. Summary: Disk schedulers in current operating systems typically dispatch pending requests to the disk as soon as the disk becomes available, and may suffer from `deceptive idleness' when subject to applications that issue synchronous I/O. This work proposes a disk scheduling paradigm where the servicing of disk requests is sometimes deliberately delayed by calculated amounts of time, thus allowing the scheduler a chance to consider forthcoming requests. Our FreeBSD implementation significantly improves the performance of disk-bound applications such as web servers, file servers, databases, often by 30%-60%. Anticipatory scheduling is being implemented and tested by independent parties for inclusion into Linux. 4. Xority: A measure of separability of training sets to estimate hidden layer size in neural networks. Sitaram Iyer, Pushpak Bhattacharyya. Published in the Intl. Conference of Knowledge Based Computer Systems (KBCS), Dec 1998, Bombay, India. Summary: We propose a metric to estimate the practical size of a neural network, based on a novel idea in combinatorial geometry to capture inherent regularities in training sets. * Submitted or in preparation: 1. Application-assisted physical memory management. Sitaram Iyer, Juan Navarro, Peter Druschel. Submitted for peer review. Summary: Many modern applications are elastic in their ability to trade off memory consumption for performance, functionality or the usage of another resource. This work enables the system to inform applications about the severity of memory pressure via a novel metric, so that elastic applications can react to changing memory conditions. They can release unused or under-used memory when paging I/O becomes expensive, and can enlarge their memory footprint to improve performance when free memory is plentiful. The severity metric can be easily weighted to exercise a powerful and useful scheme of user preferences on memory allocations. 2. A resource management framework for predictable quality of service in web servers. Mohit Aron, Sitaram Iyer, Peter Druschel. In preparation. Summary: This system enables Web and proxy server operators to ensure a probabilistic minimal QoS level for each web service. The proposed mechanisms include a measurement-based admission control framework to decide which services can be co-hosted, and feedback-based resource schedulers (with consideration for the idiosyncrasies of some resources) to control the allocation for each resource required to meet the desired QoS levels. #Talks # # - Microsoft Research Lab Cambridge, UK # Presentation of `Peer-to-peer Web Caching in Squirrel' August 2001 # # - Indian Institute of Technology Bombay, India # Invited talk on `Anticipatory Disk Scheduling' May 2001 # Teaching Experience * Rice University Houston, Texas Teaching assistant for five courses Aug 1998 - Dec 2000 - Assisted in teaching advanced undergraduate courses such as Operating Systems (two semesters) and Distributed Program Construction, a graduate level course on Computer Security, and an introductory course on the Principles of Computing and Programming. - Conducted laboratory sessions, assisted students with projects, graded exams and assignments, and prepared model answer sets. - Co-guided and programmed part of a large, class-wide project in distributed program construction called ObjectWeb, and managed the code repository. * Indian Institute of Technology Bombay, India Teaching assistant for Introduction to Programming Aug-Nov 1996 - Taught tutorial and laboratory sessions, graded exams, and helped students with course projects. Honors - Rice University Fellowship for graduate study - Ranked 49th among 100,000 candidates over India in the IIT entrance exam (9th in the Western Zone) - Indian National Talent Merit Scholarship awardee, 16th in state - High School Merit Scholarship awardee Professional Service * Refereed 15 papers for the following conferences and symposia: USENIX Security 1999, Sigmetrics 2000, OSDI 2000, USENIX 2001, SOSP 2001, Infocom 2002, ISCA 2002, OSDI 2002, PODC 2003. Other Contributions * Created and maintain a popular poetry anthology web site (www.minstrels.org) for the past four years; the associated poem-a-day mailing list has nearly 2000 subscribers. * Created a script-driven documentation repository at IIT Bombay, which is actively being used and maintained by current students. * Developed an accounts management web site to keep track of joint finances among groups of friends; it currently hosts 30 users. * Wrote and released some open-source software applications (SVNCviewer, slash2mail, cluster-tools, cvs-exp, etc.) * Maintain the technical report archive in the Rice CS department. * Administered server clusters in the Rice CS systems group, and assisted many colleagues with many technical difficulties. Other interests * Rock climbing, rock music, movies.