Sunteți pe pagina 1din 124

COMMUNICATIONS

ACM
CACM.ACM.ORG

OF THE

12/2014 VOL.57 NO.12

Computationally Modeling Human Emotion

Intelligent Living The Internet That Facebook Built


A New Software Engineering Human-Agent Collectives
Exciting Changes for ACMs A.M. Turing Award

Association for
Computing Machinery

3-5 JUNE, 2015


BRUSSELS, BELGIUM
Course and Workshop
proposals by
15 November 2014
Paper Submissions by
12 January 2015
Work in Progress, Demos,
DC, & Industrial
Submissions by
2 March 2015
Welcoming Submissions on
Content Production
Systems & Infrastructures
Devices & Interaction Techniques
Experience Design & Evaluation
Media Studies
Data Science & Recommendations
Business Models & Marketing
Innovative Concepts & Media Art

TVX2015.COM
INFO@TVX2015.COM

ACM Books

M MORGAN & CLAYPOOL


&C P U B L I S H E R S

Publish your next book in the

ACM Digital Library


ACM Books is a new series of advanced level books for the computer science community,
published by ACM in collaboration with Morgan & Claypool Publishers.
Im pleased that ACM Books is directed by a volunteer organization headed by a
dynamic, informed, energetic, visionary Editor-in-Chief (Tamer zsu), working
closely with a forward-looking publisher (Morgan and Claypool).
Richard Snodgrass, University of Arizona

books.acm.org ACM Books


will include books from across the entire
spectrum of computer science subject
matter and will appeal to computing
practitioners, researchers, educators, and
students.
will publish graduate level texts; research
monographs/overviews of established
and emerging fields; practitioner-level
professional books; and books devoted to
the history and social impact of computing.
will be quickly and attractively published
as ebooks and print volumes at affordable
prices, and widely distributed in both print
and digital formats through booksellers
and to libraries and individual ACM
members via the ACM Digital Library
platform.
is led by EIC M. Tamer zsu, University of
Waterloo, and a distinguished editorial
board representing most areas of CS.

Proposals and inquiries welcome!

Contact: M. Tamer zsu, Editor in Chief


booksubmissions@acm.org

Association for
Computing Machinery
Advancing Computing as a Science & Profession

COMMUNICATIONS OF THE ACM


Departments

Viewpoints

From the Chair of ACMs


Education Policy Committee and
ACMs Chief Executive Officer

21 Global Computing

The Internet That Facebook Built


The on-ramp might appear free
but exiting takes a toll.
By Michael L. Best

Pathways to Computing Careers


By Bobby Schnabel and John White
7

Cerfs Up

24 The Profession of IT

Does Innovation Create


or Destroy Jobs?
By Vinton G. Cerf
8

Letters to the Editor

On the Significance of Turings Test


12

10 BLOG@CACM

Meeting Student and Teacher Needs


in Computing Education
Mark Guzdial reports on the 2014
meeting of the ACM Education
Council, where updates from
its global representatives led to
action plans.

28 Broadening Participation
12 Decoding the Language

of Human Movement
Computers that recognize what is
happening in moving images
can help defend against crime, and
revolutionize rehabilitation.
By Chris Edwards
15 Intelligent Living

After years of false starts, the smart


home is gaining momentum.
By Gregory Mone

99 Careers

Last Byte

Port Squatting
Do not irk your local sysadmin.
By George V. Neville-Neil
33 Viewpoint

17 Sensors for Seniors

120 Q&A

From Esterel to HipHop


This years CNRS Gold Medal
recipient, Grard Berry, discusses
his roots in computer science,
why computers are stupid,
and how he has helped
to simplify programming.
By Gregory Mone

In-home technologies are helping


seniors stay aware, healthy, and
in touch.
By Keith Kirkpatrick
20 ACMs Turing Award Prize

Raised to $1 Million

Association for Computing Machinery


Advancing Computing as a Science & Profession

COMMUNICATIO NS O F THE ACM

Innovation and Inclusion


What technology companies,
especially startups, need to know
about building great places to work
for her and himin the digital age.
By Telle Whitney and Elizabeth Ames
31 Kode Vicious

23 Calendar

The Whole Professional


A new book inspires a reflection
on what it means to be a whole,
competent, and effective
professionaland may portend
a wave of disruption in education.
By Peter J. Denning

| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

Making the Case for


a Manufacturing Execution System
for Software Development
Seeking to improve information
integration throughout the
manufacturing process.
By Martin Naedele, Rick Kazman,
and Yuanfang Cai

IMAGE BY PA L2IYAW IT/SHU TTERSTOCK.COM

News

12/2014
VOL. 57 NO. 12

Practice

Contributed Articles

Review Articles

38

38 The Responsive Enterprise:

Embracing the Hacker Way


Soon every company will be
a software company.
By Erik Meijer and Vikram Kapoor
44 No Such Thing as

a General-Purpose Processor
And the belief in such
a device is harmful.
By David Chisnall
49 A New Software Engineering

What happened to the promise of


rigorous, disciplined, professional
practices for software development?
By Ivar Jacobson and Ed Seidewitz

56

56 Computationally Modeling

Human Emotion
Computer models of emotion inform
theories of human intelligence and
advance human-centric applications.
By Stacy Marsella
and Jonathan Gratch

80 Human-Agent Collectives

HACs offer a new science for


exploring the computational
and human aspects of society.
By N.R. Jennings, L. Moreau,
D. Nicholson, S. Ramchurn,
S. Roberts, T. Rodden, and A. Rogers

68 GPUfs: The Case for Operating

System Services on GPUs


The GPUfs file system layer
for GPU software makes core
operating system abstractions
available to GPU code.
By Mark Silberstein, Bryan Ford,
and Emmett Witchel

Research Highlights
90 Technical Perspective

Rethinking Caches for


Throughput Processors
By Stephen W. Keckler
91 Learning Your Limit: Managing

Massively Multithreaded Caches


Through Scheduling
By Timothy G. Rogers, Mike OConnor,
and Tor M. Aamodt

Articles development led by


queue.acm.org

IMAGES BY SERGEY M IRO NOV; OLLYY; ANDRIJ BORYS ASSOCIATES

80

About the Cover:


The computational
modeling of human
behavior plays an
increasingly important
role in the computational
sciences. This months
cover story by Stacy
Marsella and Jonathan
Gratch (p. 56) explores
methods for modeling
human emotions in
order to help facilitate
the interaction between
people and machines.
Cover photographs by Ollyy.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF THE ACM

COMMUNICATIONS OF THE ACM


Trusted insights for computings leading professionals.

Communications of the ACM is the leading monthly print and online magazine for the computing and information technology fields.
Communications is recognized as the most trusted and knowledgeable source of industry information for todays computing professional.
Communications brings its readership in-depth coverage of emerging areas of computer science, new trends in information technology,
and practical applications. Industry leaders use Communications as a platform to present and debate various technology implications,
public policies, engineering challenges, and market trends. The prestige and unmatched reputation that Communications of the ACM
enjoys today is built upon a 50-year commitment to high-quality editorial content and a steadfast dedication to advancing the arts,
sciences, and applications of information technology.
ACM, the worlds largest educational
and scientific computing society, delivers
resources that advance computing as a
science and profession. ACM provides the
computing fields premier Digital Library
and serves its members and the computing
profession with leading-edge publications,
conferences, and career resources.
Executive Director and CEO
John White
Deputy Executive Director and COO
Patricia Ryan
Director, Office of Information Systems
Wayne Graves
Director, Office of Financial Services
Darren Ramdin
Director, Office of SIG Services
Donna Cappo
Director, Office of Publications
Bernard Rous
Director, Office of Group Publishing
Scott E. Delman
ACM CO U N C I L
President
Alexander L. Wolf
Vice-President
Vicki L. Hanson
Secretary/Treasurer
Erik Altman
Past President
Vinton G. Cerf
Chair, SGB Board
Patrick Madden
Co-Chairs, Publications Board
Jack Davidson and Joseph Konstan
Members-at-Large
Eric Allman; Ricardo Baeza-Yates;
Cherri Pancake; Radia Perlman;
Mary Lou Soffa; Eugene Spafford;
Per Stenstrm
SGB Council Representatives
Paul Beame; Barbara Boucher Owens;
Andrew Sears

STA F F

EDITORIAL BOARD

DIRECTOR OF GROUP PU BLIS HING

E DITOR- IN- C HIE F

Scott E. Delman
publisher@cacm.acm.org

Moshe Y. Vardi
eic@cacm.acm.org

Executive Editor
Diane Crawford
Managing Editor
Thomas E. Lambert
Senior Editor
Andrew Rosenbloom
Senior Editor/News
Larry Fisher
Web Editor
David Roman
Editorial Assistant
Zarina Strakhan
Rights and Permissions
Deborah Cotton

NE W S

Art Director
Andrij Borys
Associate Art Director
Margaret Gray
Assistant Art Director
Mia Angelica Balaquiot
Designer
Iwona Usakiewicz
Production Manager
Lynn DAddesio
Director of Media Sales
Jennifer Ruzicka
Public Relations Coordinator
Virginia Gold
Publications Assistant
Emily Williams
Columnists
David Anderson; Phillip G. Armour;
Michael Cusumano; Peter J. Denning;
Mark Guzdial; Thomas Haigh;
Leah Hoffmann; Mari Sako;
Pamela Samuelson; Marshall Van Alstyne
CO N TAC T P O IN TS
Copyright permission
permissions@cacm.acm.org
Calendar items
calendar@cacm.acm.org
Change of address
acmhelp@acm.org
Letters to the Editor
letters@cacm.acm.org

BOARD C HA I R S
Education Board
Mehran Sahami and Jane Chu Prey
Practitioners Board
George Neville-Neil
REGIONA L C O U N C I L C HA I R S
ACM Europe Council
Fabrizio Gagliardi
ACM India Council
Srinivas Padmanabhuni
ACM China Council
Jiaguang Sun

W E B S IT E
http://cacm.acm.org
AU T H O R G U ID E L IN ES
http://cacm.acm.org/guidelines

PUB LICATI O N S BOA R D


Co-Chairs
Jack Davidson; Joseph Konstan
Board Members
Ronald F. Boisvert; Marie-Paule Cani;
Nikil Dutt; Roch Guerrin; Carol Hutchins;
Patrick Madden; Catherine McGeoch;
M. Tamer Ozsu; Mary Lou Soffa

ACM ADVERTISIN G DEPARTM E NT

2 Penn Plaza, Suite 701, New York, NY


10121-0701
T (212) 626-0686
F (212) 869-0481
Director of Media Sales
Jennifer Ruzicka
jen.ruzicka@hq.acm.org

ACM U.S. Public Policy Office


Renee Dopplick, Director
1828 L Street, N.W., Suite 800
Washington, DC 20036 USA
T (202) 659-9711; F (202) 667-1066

Media Kit acmmediasales@acm.org

Co-Chairs
William Pulleyblank and Marc Snir
Board Members
Mei Kobayashi; Kurt Mehlhorn;
Michael Mitzenmacher; Rajeev Rastogi
VIE W P OINTS

Co-Chairs
Tim Finin; Susanne E. Hambrusch;
John Leslie King
Board Members
William Aspray; Stefan Bechtold;
Michael L. Best; Judith Bishop;
Stuart I. Feldman; Peter Freeman;
Mark Guzdial; Rachelle Hollander;
Richard Ladner; Carl Landwehr;
Carlos Jose Pereira de Lucena;
Beng Chin Ooi; Loren Terveen;
Marshall Van Alstyne; Jeannette Wing
P R AC TIC E

Co-Chairs
Stephen Bourne
Board Members
Eric Allman; Charles Beeler; Bryan Cantrill;
Terry Coatta; Stuart Feldman; Benjamin Fried;
Pat Hanrahan; Tom Limoncelli;
Kate Matsudaira; Marshall Kirk McKusick;
Erik Meijer; George Neville-Neil;
Theo Schlossnagle; Jim Waldo
The Practice section of the CACM
Editorial Board also serves as
.
the Editorial Board of
C ONTR IB U TE D A RTIC LES

Co-Chairs
Al Aho and Andrew Chien
Board Members
William Aiello; Robert Austin; Elisa Bertino;
Gilles Brassard; Kim Bruce; Alan Bundy;
Peter Buneman; Peter Druschel;
Carlo Ghezzi; Carl Gutwin; Gal A. Kaminka;
James Larus; Igor Markov; Gail C. Murphy;
Shree Nayar; Bernhard Nebel;
Lionel M. Ni; Kenton OHara;
Sriram Rajamani; Marie-Christine Rousset;
Avi Rubin; Krishan Sabnani;
Ron Shamir; Yoav Shoham; Larry Snyder;
Michael Vitale; Wolfgang Wahlster;
Hannes Werthner; Reinhard Wilhelm
RES E A R C H HIGHLIGHTS

Co-Chairs
Azer Bestovros and Gregory Morrisett
Board Members
Martin Abadi; Amr El Abbadi; Sanjeev Arora;
Dan Boneh; Andrei Broder; Stuart K. Card;
Jeff Chase; Jon Crowcroft; Matt Dwyer;
Alon Halevy; Maurice Herlihy; Norm Jouppi;
Andrew B. Kahng; Xavier Leroy; Kobbi Nissim;
Mendel Rosenblum; David Salesin;
Steve Seitz; Guy Steele, Jr.; David Wagner;
Margaret H. Wright

ACM Copyright Notice


Copyright 2014 by Association for
Computing Machinery, Inc. (ACM).
Permission to make digital or hard copies
of part or all of this work for personal
or classroom use is granted without
fee provided that copies are not made
or distributed for profit or commercial
advantage and that copies bear this
notice and full citation on the first
page. Copyright for components of this
work owned by others than ACM must
be honored. Abstracting with credit is
permitted. To copy otherwise, to republish,
to post on servers, or to redistribute to
lists, requires prior specific permission
and/or fee. Request permission to publish
from permissions@acm.org or fax
(212) 869-0481.
For other copying of articles that carry a
code at the bottom of the first or last page
or screen display, copying is permitted
provided that the per-copy fee indicated
in the code is paid through the Copyright
Clearance Center; www.copyright.com.
Subscriptions
An annual subscription cost is included
in ACM member dues of $99 ($40 of
which is allocated to a subscription to
Communications); for students, cost
is included in $42 dues ($20 of which
is allocated to a Communications
subscription). A nonmember annual
subscription is $100.
ACM Media Advertising Policy
Communications of the ACM and other
ACM Media publications accept advertising
in both print and electronic formats. All
advertising in ACM Media publications is
at the discretion of ACM and is intended
to provide financial support for the various
activities and services for ACM members.
Current Advertising Rates can be found
by visiting http://www.acm-media.org or
by contacting ACM Media Sales at
(212) 626-0686.
Single Copies
Single copies of Communications of the
ACM are available for purchase. Please
contact acmhelp@acm.org.
COMMUN ICATION S OF THE ACM
(ISSN 0001-0782) is published monthly
by ACM Media, 2 Penn Plaza, Suite 701,
New York, NY 10121-0701. Periodicals
postage paid at New York, NY 10001,
and other mailing offices.
POSTMASTER
Please send address changes to
Communications of the ACM
2 Penn Plaza, Suite 701
New York, NY 10121-0701 USA

Printed in the U.S.A.

COMMUNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

REC

PL

NE

E
I

SE

CL

TH

Computer Science Teachers Association


Lissa Clayborn, Acting Executive Director

Chair
James Landay
Board Members
Marti Hearst; Jason I. Hong;
Jeff Johnson; Wendy E. MacKay

WEB

Association for Computing Machinery


(ACM)
2 Penn Plaza, Suite 701
New York, NY 10121-0701 USA
T (212) 869-7440; F (212) 869-0481

M AGA

from the chair of acms education policy committee


and acms chief executive officer
DOI:10.1145/2684460

Bobby Schnabel and John White

Pathways to Computing Careers


In recent years, the national discussion
about the importance of STEM (Science,
Technology, Engineering, and Mathematics)
has become increasingly prominent.
Accompanying this discussion, some
questions have been raised about
whether there really is a STEM problem when it comes to filling current
and future jobs in the U.S. Two things
are abundantly clear and critically important: the great majority of the current and foreseeable STEM jobs are in
computing and IT; and there is great
demand in these areas spread across
all sectors of the economy. Whether in
Silicon Valley or the nations heartland,
every region is facing rapid growth in
demand for workers in computing and
information technology-based jobs.
ACM has been at the heart of the
U.S. policy discussion regarding computing education and the workforce
for a number of years through its Education Policy Committee (ACM EPC).
The EPC has played an important role
in bringing attention and action to
these issues, including a seminal role
in the creation of the annual U.S. Computer Science Education Week, and a
major role in contributing to the development of the non-profit organization
Code.org. Code.org has become the
focal point for the communitys effort
to make computing education ubiquitous in U.S. K12 schools. Indeed, the
organization sponsored the international Hour of Codean introduction
to computing that has reached over 40
million students worldwide.
The EPCs 2010 report Running
on Empty: The Failure to Teach K12
Computer Science in the Digital Age
(runningonempty.acm.org) had a significant impact in bringing awareness and energy to these issues.
The recently released ACM report,
Rebooting the Pathway to Success:
Preparing Students for Computing
Workforce Needs in the United States
(pathways.acm.org),
authored
by
Lisa Kaczmarczyk and Renee Dopplick,
is the sequel to Running on Empty. The

earlier report focused on K12 computing education policy and availability, state by state and in aggregate.
The Pathways report focuses on IT
workforce needs at the U.S. state and
national levels, along with examples
of successful educational pathways
that help meet these needs, and policy
recommendations to government and
economic leaders.
The workforce analysis in the Path
ways report shows there is significant
demand for IT workforce professionals
in all 50 states. The examples of strategies to address this need illustrate a
diverse set of educational approaches that have been successful across
a wide spectrum of geographical regions, socioeconomic conditions,
and slices of the K12 educational systems. These examples provide a rich
set of starting points for other states
and school districts to consider and
potentially emulate.
The Pathways report contains a nationwide call to action for every U.S.
state to have an education and computing workforce development plan that
includes K12 computer science education and to align state policy, programs,

The Pathways report


contains a nationwide
call to action for every
U.S. state to have
an education and
computing workforce
development plan.

and resources to support the plan. Key


new recommendations in the report
include: each states plan should have
strategies to fill its computing workforce needs in the growing number of
computing-dependent occupations
both inside and outside traditional
high-technology industries; states and
major school districts should adopt
education paths for computer science
within both academic and career technical education programs; each states
computer science education and computing workforce development plan
should include explicit actions for obtaining the full participation of females
and other underrepresented populations; and business and government
leaders should clearly articulate the importance of the computing field to the
economy and to community well-being.
Progress on U.S. computing education policies and practices will often
be made one community at a time. For
this reason, we encourage U.S.-based
ACM members to engage in these discussions in your communities, from
your perspectives as knowledgeable
and well-respected professionals
in the field. As these steps regarding computer science education and
workforce development unfold in
the U.S., many other nations are taking exciting and aggressive measures
to position or reposition computing
education. As a result, the ACM Education Policy Committee is turning
some of its attention to comparing
and sharing practices between nations. We welcome all ACM members
to share with us their perspectives and
opinions on this important topic.
Bobby Schnabel is the chair of the ACM Education
Policy Committee and Dean of the School of Informatics
and Computing at Indiana University, Bloomington.
John White is the Chief Executive Officer of ACM.

Copyright held by authors.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF THE ACM

Inviting Young
Scientists
Meet Great Minds in Computer
Science and Mathematics
As one of the founding organizations of the Heidelberg Laureate Forum http://
www.heidelberg-laureate-forum.org/, ACM invites young computer science and
mathematics researchers to meet some of the preeminent scientists in their field.
These may be the very pioneering researchers who sparked your passion for
research in computer science and/or mathematics.
These laureates include recipients of the ACM A.M. Turing Award, the Abel Prize,
and the Fields Medal.
The Heidelberg Laureate Forum is August 2328, 2015 in Heidelberg, Germany.
This week-long event features presentations, workshops, panel discussions, and
social events focusing on scientific inspiration and exchange among laureates and
young scientists.

Who can participate?

New and recent Ph.Ds, doctoral candidates, other graduate students


pursuing research, and undergraduate students with solid research
experience and a commitment to computing research

How to apply:

Online: https://application.heidelberg-laureate-forum.org/
Materials to complete applications are listed on the site.

What is the schedule?

Application deadlineFebruary 28, 2015.


We reserve the right to close the application website
early depending on the volume
Successful applicants will be notified by April 15, 2015.
More information available on Heidelberg social media

PHOTOS: HLFF/B. Kreutzer (2)

cerfs up

DOI:10.1145/2685035

Vinton G. Cerf

Does Innovation Create


or Destroy Jobs?

VER THE PAST YEAR ,

David
Nordfors and I have organized several invitationonly seminars we call
Innovation and Jobs.
Our purpose has been to draw upon
many points of view from experts
in many fields to understand more
deeply how innovation relates to the
workplace. One of the first surprises,
for me at least, was the observation
that, once there is food on the table
and a roof over ones head, everyone
is not necessarily looking for remunerative work. What seemed very
important was meaningful work. As
this thread was teased out, we recognized that a significant fraction
of some economies depends on
or benefits from a lot of volunteer
work. There are even websites devoted to connecting volunteers with
work they find meaningful, such as
the very successful www.volunteermatch.org. One wonders how much
of the worlds economy involves
this kind of non-remunerative work
and to what degree we are dependent as a society on the gratifying
sense of having contributed to the
well-being of others or satisfying an
itch that happens to produce benefits for others (think of volunteer docents in museums, volunteer nature
walk guides, and people who volunteer in hospitals).
In this column, I would ask you
read jobs in the most general sense as
work that may or may not involve conventional remuneration (that is, pay).
As the title asks, do we know whether innovation creates or destroys jobs?
The answer is yes to both aspects. Novel ways to do things, especially with
forms of automatic production, clearly
take away the need for manual jobs.

The Jacquard looma is a perfect example. But it also created work. Someone
had to design the cards that drove the
loom. Someone had to build and maintain the loom. The productivity of fabric manufacture must have increased
with the introduction of this invention.
The same can be said for many other
inventions. The development of production lines actually increased the
availability of jobs and while also increasing productivity per capita.
What should be fairly obvious, on
reflection, is that new jobs created by
innovation often require new skills
and some displaced workers may not
be able to learn them. Even when there
is a net increase in jobs resulting from
innovation (think of the invention
of the integrated circuit, the World
Wide Web, YouTube), not everyone
displaced will find new work unless or
until they are able to learn new skills
or apply new knowledge.
This need for new knowledge and
skills applies very well to our field of
computing and its applications. Programs are the equivalent of the cards
in the Jacquard loom and the production of programs requires specific
skills. If we have learned anything over
the course of the computers development, it is that the designers of hardware and software must keep learning new knowledge and skills to be
relevant and to be able to continue to
undertake new work. While there was
an intense increase in the need for
COBOL programmers leading to Y2K
in 2000, this skill is much less in demand now than, say, C++, JavaScript,
Python, and Ruby on Rails (I know, I
did not name your favorite language
feel free to send in your suggestions!).
a http://en.wikipedia.org/wiki/Jacquard_loom

What this suggests is that innovation and longer lives are driving the
need for continuous learning. The old
model of going to school for a while,
having a career (maybe at the same
company), and then retiring is being
replaced with a more continuous need
for access to new knowledge and skills
throughout a career that may take
many unpredictable twists and turns.
In our own disciplines, the seeds of
the solution may lie in the technology. The Internet, the World Wide
Web, Massive Open Online Courses
(MOOCs), and related infrastructure
may supply some of the necessary
educational needs we see emerging.
Not every job will admit this form of
education, of course, but we can see
a society emerging in which learning
becomes a lifelong necessity for substantial portions of the workforce.
Peter Diamandis book, Abundance,b
paints a very optimistic view of the future and while one can be somewhat
skeptical, it seems fair to say innovation has brought us the potential for
abundance and new work. The role
of computing in our society has increased dramatically in the past half
century and it is my belief it will have
a major and perhaps increasing influence on innovation in fields well
outside of traditional computing and
programming for the simple reason
that computing tools are becoming
essential to or at least involved in almost everything we do.
b http://www.diamandis.com/abundance/

Vinton G. Cerf is vice president and Chief Internet


Evangelist at Google. He served as ACM president
from 20122014.
Copyright held by author.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF THE ACM

letters to the editor


DOI:10.1145/2684441

On the Significance of Turings Test

the first
sentence of Alan Turings
1950 paper Computing Machinery and Intelligence
might suggest, the paper
was not about the question Can machines think? Turing quickly rejected that question because its meaning
is undefined, replacing it with a vaguely related alternative that is relatively
unambiguous. He said he considered
Can machines think? too meaningless to deserve discussion and did not
claim his replacement question was,
in any sense, equivalent to the original question.
Nobody interested in the so-called
Turing Test should neglect the work
of the late MIT professor Joseph Weizenbaum in the mid-1960s. Using a
computer that was extremely limited
in computing power by todays standards, he created a simple program
called Eliza that could carry out an
apparently interesting conversation
with a user. Nobody who examined
Elizas code would consider the program to be intelligent. It clearly had
no information about the topic being
discussed. Over the years I have met
at least several people who viewed
Eliza as a serious attempt to pass the
so-called Turing test; some actually
worked to improve it. Weizenbaum
found this surprising and insisted
they were wrong. He had written the
program and related paper to show
that passing the Turing test was trivial
and that the test should not be used
as a measure of intelligence.
Moshe Y. Vardi was correct in his
Editors Letter Would Turing Have
Passed the Turing Test? (Sept. 2014)
when he suggested that Turings imitation game should be regarded as
nothing more than a game. I would go
further. Computer scientists have wasted far too much time and resources
trying to answer big but vague philosophical questions (such as Can a
machine be intelligent?). Their effort
would be better spent on answering
little questions about specific issues
(such as Can a computing machine
O N T R A R Y T O W H AT

COMMUNICATIO NS O F THE ACM

be trusted to park a car?). Discussion


of such practical matters would be
far more useful than endless debates
about the Turing test and who or what
might pass it.
David Lorge Parnas, Ottawa, Canada

ACM SIG Health and Its Implications


The interesting summary of ACMs
strategic planning retreat in November 2013 by John White in ACMs
Challenges and Opportunities, his
From ACMs Chief Executive Officer column (Oct. 2014), prompts a
few questions. The SIG structure was
described as relatively healthy. But
by what measures? In 1990, ACM had
more than 100,000 SIG members.
Computer professionals increased by
one or two orders of magnitude over
the ensuing 25 years, but collective SIG
membership declined steadily to fewer
than 40,000, setting a new record low
in 2014. This raises questions about
two of the three crosscutting topics
identified at the retreat: community,
obviously, and practitioners, who accounted for much of the decline, as
100,000 academics were not employed
in 1990. The third major topic, quality,
could be implicated in the damage to
practitioner participation and sense of
community. Relentless conference demands for technical quality drove out
urgent but unpolished practitioner
observations and informal research
thoughts, first in papers, then in workshops. A quality focus favors incremental work with its unimpeachable
literature reviews, methods, and analyses. To find realistic paths forward,
ACM must understand more deeply
the forces that brought us here. How
much time do we have?
Jonathan Grudin, Redmond, WA

Authors Response:
Membership is not the only (or even the
right) metric to use when assessing the
health of the technical communities
represented by ACM SIGs. Looking at the
number, value, and reach of SIG technical

| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

activities is far more important. ACM SIGs


run almost 200 conferences, workshops,
and symposia each year. These events
are attended by tens of thousands of
academics, researchers, and practitioners.
And the results are heavily downloaded
from the ACM Digital Library. Such reach
and impact is how we assess the health of
our technical communities, and most are
healthy. However, there is still much work
to do in rethinking conferences, serving
practitioners, and finding the right balance
in publications; see also Dealing with
the Deep, Long-Term Challenges Facing
ACM (Part I) by Alexander L. Wolf,
ACM President (Nov. 2014).
John White, ACM CEO

Secure Software Costs No More


Poul-Henning Kamp failed to provide
data for his claim in his article Quality Software Costs MoneyHeartbleed
Was Free (Aug. 2014) that quality
software costs more and the implication that for-profit software (such as
Windows) is more secure than free
and open source software (FOSS). One
usually measures the time between
serious FOSS bugs affecting many millions of machines in years rather than
a month or two between Windows vulnerabilities affecting most Windows
versions allowing remote execution of
arbitrary code. The Microsoft policy of
Patch [every] Tuesday is admission
of this imperative.
I encourage for-profit companies
and others to donate more toward
FOSS development, much of which
is already done for free by individuals
and companies donating the time of
their people; for example, I donated
the concept and first implementation
of keyboard locking, LOCK(I), to Berkeley Software Distribution (BSD) Unix.
Wikipedia reports the Heartbleed
security bug affected few major sites directly; for example, major banks, Amazon, Apple, eBay, the IRS, PayPal, and
Target were not affected, even as Gmail,
Google, HealthCare.gov, Netflix, Yahoo,
and YouTube were. Good security
practices require companies and us-

letters to the editor

Authors Response:
I am surprised Toxen read an endorsement
of closed-source quality into my article
about funding open source, as no such thing
was my intent. I wrote about the horrible
quality issues in closed source in a previous
Communications article, The Software
Industry is the Problem (Nov. 2011)
and suspect he will find we are in violent
agreement if he reads it.
Poul-Henning Kamp, Stagelse, Denmark

Trust Personal Data


to Social Scientists?
Jon P. Daries et al.s article Privacy,
Anonymity, and Big Data in the Social
Sciences (Sept. 2014) included a nice
explanation of several considerations
for masking data that had not occurred
to me before. However, suggesting we
trust social scientists ethics to preserve personal privacy is nave. The
continuing Edward Snowden disclosures make clear that even highly motivated, ethical people can betray their
principles despite the best of intentions. I suspect civilization will need
millennia more before it begins to let
data security and privacy depend on
the kindness of strangers or even on
social scientists.
Steven L. Newton, Milwaukee, WI

For Better Security, Try a


Random-Point Password Sequence
In Neuroscience Meets Cryptography:
Crypto Primitives Secure Against Rubber Hose Attacks (May 2014), Hristo
Bojinov et al. described how authorized
users can be trained on a 30-character
password sequence, with those requesting access to a secure system required
to select it from among three 30-character sequences. Authorized users would
identify themselves by clearly performing better on the training sequence
than on the other two sequences.
The article also described one type
of attack on such a system in terms of

Jeffrey Suzuki, Brooklyn, NY

Authors Response:
Suzuki points out several possible
improvements and extensions that may
make user-authentication systems that

leverage implicit sequence learning more


practical. The authentication method
is not sensitive to the starting point of
the sequence, so, sadly, we cannot take
advantage of that suggestion. However,
embedding parts of the trained sequence
among noise sequences during the
authentication challenge seems to
work quite well. Under National Science
Foundation sponsorship, we are continuing
research on this topic and hope to be able to
share more of our findings in the near future.
Hristo Bojinov, Daniel Sanchez,
Paul Reber, Dan Boneh,
and Patrick Lincoln
Communications welcomes your opinion. To submit a
Letter to the Editor, please limit yourself to 500 words or
less, and send to letters@cacm.acm.org.
2014 ACM 0001-0782/14/12 $15.00

COMMUNICATIONS

Bob Toxen, Duluth, GA

an unauthorized user deliberately underperforming on two of the sequences, giving the user a 1/3 chance of doing
better on the training sequence. The
article suggested an alternative would
be to train the user on multiple sequences, then intermix these trained
sequences with other sequences.
However, a simpler and more effective way to provide system security
also suggests itself. Three 30-character sequences could be viewed as
equivalent to a single 90-character
sequence. Suppose a system administrator responsible for training a
systems authorized users selects a
random point within the two random
sequences and begins the 30-character training sequence at that point. A
potential attacker would then have to
identify that point. This added complexity would reduce the attackers 1/3
chance of selecting the right sequence
to 1/61, thereby strengthening access
security.
Intermixing character sequences
promises even more possibilities for
hiding the right sequence. In fact, it
might not be necessary for the system administrator to get authorized
users to train on multiple sequences
but rather to break the 30-character
training sequence into three 10-character subsequences. Fairly standard
combinatorial procedures suggest
there would be 238,266 ways to place
the 10-character subsequences in the
60-character random sequence.
Hiding the correct sequence in
other sequences also suggests new
secure-access research directions. In
particular, sequence hiding assumes
training on a 30-character sequence
translates to improved performance
when a 30-character sequence is embedded in a longer sequence. But
does such an approach to hiding passwords hold for all possible sequences
and access privileges? Moreover,
would training on the 30-character sequence translate to improved authorized-user performance on a 10-character sub-sequence?

Coming Next Month in

ers alike to use different passwords for


different high-security purposes, as in,
say, individual online banking or shopping sites, to limit potential cybercrime
damage to ones other accounts using
the same password.

Distributed
Information Processing
in Biological and
Computational Models
Does the Internet
Make Us Stupid?
Neural Acceleration
for General-Purpose
Approximate Programs
Global Analysis of
Hardware Architecture
Research 19972011
Interactive Intent
Modeling:
Information Discovery
Beyond Search
Has the Age of
Smartwatches Arrived?
ACMs Annual Report
for FY14
Plus the latest news
about Bayesian reasoning,
IT and traffic management,
data brokering, and more.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF THE ACM

The Communications Web site, http://cacm.acm.org,


features more than a dozen bloggers in the BLOG@CACM
community. In each issue of Communications, well publish
selected posts or excerpts.

Follow us on Twitter at http://twitter.com/blogCACM

DOI:10.1145/2682922 http://cacm.acm.org/blogs/blog-cacm

Meeting Student and


Teacher Needs in
Computing Education
Mark Guzdial reports on the 2014 meeting of
the ACM Education Council, where updates from
its global representatives led to action plans.
Mark Guzdial
The State of
Computing Education
in the World:
Report on the 2014
ACM Education
Council Meeting
http://bit.ly/1tIfUkn
October 2, 2014

The ACM Education Council held


its 2014 meeting in mid-September
in Portland. The Education Council,
co-chaired by Jane Prey and Mehran
Sahami, is a meeting of education
leaders from across ACM with representation from around the world. The
meeting provides an opportunity to
share information about initiatives,
identify critical issues, and develop
action items for what the Education
Council can do to meet needs in computing education. (The collection of
all the presentations at the meeting is
available at http://bit.ly/1t3TqIE.)
The first talks set the global perspective for the meeting. John White,
10

COMMUNICATIO NS O F TH E AC M

CEO of ACM, sent an update about


the membership trends in ACM. The
U.S. now represents less than half of
ACMs members, and the number of
U.S. members has declined over the
last six years. The greatest growth is
in China, which has grown a whopping 1,432% in the same period. ACM
now has more members in China
than in Europe.
Ming Zhang from ACM China,
Mathai Joseph from ACM India, and
Andrew McGettrick from ACM Europe
gave presentations on computing education issues in their regions.
Mings talk was about growth.
There is enormous interest in China around computational thinking,
computer science, and new computing-related degrees, like a new degree
in the Internet of Things. Chinese
computing educators are developing
their own curriculum standards. Educational resources are not uniformly
distributed across China, and there is
a great interest in using MOOCs (see
a listing at http://bit.ly/1sKG6ap) to

| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

provide more computing education


opportunities.
Joseph talked about challenges
across levels of school. There is interest in computing in Indian primary and secondary schools, but
there are not enough teachers. At the
post-secondary level, the ACM India
Education Committee is focused on
improving teaching and developing
new curriculum standards. There is
very little uptake of MOOCs by Indian institutions, in part because there
are few Indian MOOCs that speak
to the syllabi in India and the backgrounds of Indian students.
In Europe, McGettrick told us how
ACM Europe works with Informatics
Europe (consisting of Heads of Computing programs across Europe) on
education issues. In 2013, they issued
a joint report on Informatics Education in secondary schools (http://bit.
ly/1pwZkN8). Now there is a joint committee whose first charge is mapping
computing in schools across Europe.
One of the pleasures and discomforts of the Education Council meetings is the reporting out from efforts
across ACM. John Impagliazzo told
us about the efforts to update standardized curricula in computer engineering and information technology.
Heikki Topi told us about efforts to
create data science curricula and degrees, and Debra Richardson gave us
an update on CS Ed Week. We also
heard from CSTA, CSAB, SIGCHI, SIGGRAPH, SIGPLAN, SIGCAS, SIGCSE,
and Code.organd more. Most of
these reports were only about 10 min-

blog@cacm
utes long. It is wonderful that there are
so many great things going on in computing education! It is challenging to
stay focused for so many reports! (Lisa
Kaczmarczyk does a better job of describing these first-day reports at her
blog post at http://bit.ly/1vHt6EU.)
One of the more interesting reports
for me was Owen Astrachans update
on the effort to create the new Advanced Placement course and exam
in Computer Science Principles.
The framework for the new course
is available at http://apcsprinciples.
org. The exam is being defined, with
performance tasks that students will
undertake in pairs to demonstrate
their knowledge. Astrachan also talked about the CS10K effort to develop
10,000 computer science teachers in
10,000 high schools in the U.S. One
of the challenges of CS10K is providing professional learning opportunities for so many prospective teachers.
Two groups tried MOOCs, both 45
weeks long, this summer.
In one effort, 1,000 teachers signed
up, 500 were active, and 50 finished.
In another effort, 700 registered, 60
took the final exam, and about 40 completed everything.
Completion does matter when we
are talking about teachers and curriculumevery teacher must know
and be able to teach all the parts of
the curriculum. These results do not
say to me that we cannot use distance
education to offer teachers opportunities to learn CS, but they do suggest
the current models are not going to
reach enough teachers to help with
the CS10K goal. We may need different models that attract and engage
more teachers to completion.
We held breakout groups to talk
about the pressing issues on computing education and what the ACM Education Council might do about them.
I was in a group on improving diversity in computing. We have increasing
evidence that people are choosing not
to go into computing because of the
culture in technology (see the gamergate story at http://bit.ly/1yUWjyJ).
The problem of an insensitive culture
is not just in schools (see the list of
things that women in the tech industry are tired of hearing, at http://bzfd.
it/1s2HyRy). Could the ACM Education Council help to shine a light on

Completion does
matter when
we are talking
about teachers
and curriculum
every teacher
needs to know
and be able
to teach all
the parts of
the curriculum.

this problem? We have formed a task


force to address this question.
I was on a panel on Computing Education Research (CER), asking How
can ACM better promote the role of
computing education research and
grow the community? My co-panelists were Jan Cuny, Josh Tenenberg,
and Heikki Topi, with Jane Prey as
moderator. The panel was fascinating. Cuny laid out the challenges of
needing to know more about learning
and teaching in computing, without
any doctorate programs helping us
do that research. Tenenberg gave an
overview of where CER is today, and
Topi talked about CER across the variations of computing: CS, IS, and IT.
I compared CER to engineering education research (which has far fewer
international collaborations and laboratory studies than CER) and physics education research (which has
surprisingly little work in broadening
participation, despite having almost
as bad a gender skew).
In response to our panel, two
members of the Council said they
saw the hot research question in
CER as: If we teach conditionals to
grade school kids, what do we teach
them in high school, and what new
things do we teach in undergraduate? I agree that is a research question, but it is not really hot. The top
undergraduate schools might face

it sooner, but it is not really going


to be a problem for decades yet (see
my prediction about being 100 years
behind at http://bit.ly/1kF6O1u). The
problem is that we are nowhere near
saturation (in the U.S., less than 10%
of high schools have computer science teachers), and most of what we
are doing is not going to work. Our
best guess is only about 70% of students in undergraduate CS (http://
bit.ly/1CQ98Yy) are learning what we
want in the first courseand that is
teaching students with an interest in
CS who were admitted into college.
We know far less about teaching primary and secondary school students
(with a much wider range of cognitive
abilities), and we are certainly reaching our learning objectives with less
than half of them. We have a long way
to go before we face the problem of
most of our entering college students
knowing too much CS.
At the end of the meeting, the
Education Council came up with the
list of action items for the next year.
Plans were started to provide a workshop in India about ACM standard
curricula, and to develop curriculum
guidelines about data science and
about cybersecurity. CSTA asked for
a landscape study of K12 CS education. Alison Clear of New Zealand is
leading the development of an international taxonomy of computing education terms to help with worldwide
collaborations.
ACM Education Council meetings
are exhausting. There are so many reports, and plans, and strategizing in
just a day and a half. They are expensive meetings to host, to bring in education leaders from around the world.
But they are important to share initiatives and results, and to promote
computing education under the banner of the worlds largest professional
organization in computing.
Mark Guzdial is a professor at the Georgia Institute of
Technology.

2014 ACM 0001-0782/14/12 $15.00

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

11

news

Science | DOI:10.1145/2675742

Chris Edwards

Decoding the Language


of Human Movement
Computers that recognize what is happening in moving images
can help defend against crime, and revolutionize rehabilitation.
techniques from different
branches of artificial intelligence and statistical processing to give computers
the ability to comprehend the language
of human movement. Using these
techniques, computer scientists hope
to give automated systems the ability to
understand what is happening in the
sequences of images captured by the
video cameras around us.
Jesus del Rincn, researcher at the
Institute of Electronics, Communications and Information Technology

(ECIT) based at the Queens University of Belfast, U.K., points to defending against crime and terrorism as
prime motivations. If someone is
on the public transport network and
doing something strange, we want to
use reasoning to model the intention
of the attacker and work out what is
going on.
Healthcare provides another driver
for making computers understand human movement. There are a number
of quality of life issues that could be
improved. Take the example of a stroke
survivor; much of their rehabilitation

is done today in the hospital building,


but with cameras at home you could
change how we do rehabilitation, says
Deva Ramanan, a researcher at the University of California, Irvine (UC Irvine).
A computer can spend much more
time with a patient than a specialist
and in a more comfortable, familiar
environment. Potentially, the applications could move from the healthcare
environment into daily life as gestural
interfaces become more sophisticated.
If we get this right, it could change
the way we interface with everything,
Ramanan adds.

Images captured from video of a weightlifter in action, segmented into larger-scale actions; a yank from the ground (left), followed by a
pause (center), and then the press action that lifts the bar above his head (right).
12

COM MUNICATIO NS O F TH E ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

IMAGES BY PA L2IYAWIT /SHUT TERSTOCK.COM

E S E A RCH ERS ARE COM BIN I N G

news
Michael Ryoo, a researcher in the
computer vision group at NASAs
Jet Propulsion Laboratory, sees the
analysis of strokes performed by tennis players carried out 20 years ago by
Junji Yamato, now executive manager
of NTTs Innovative Communications
Laboratory, and colleagues as laying
the foundations for providing computers with the means to analyze human movement captured by video. The
work pioneered an approach that carries through to todays work, splitting
the analysis into two phases.
The first is to extract what researchers
call low-level features of interest from
each video frame. These features may
be limbs and other parts of the body, or
may work at a scale that lets them categorize the pose or posture of the body
as a whole using statistical techniques.
A popular statistical approach in
research today is the histogram of oriented gradients (HOG), in which the
edges of a body are matched to a template that contains a matrix of short
line segments of differing intensities.
The match is best where the edges extracted from the image align closely
to the parts of the template with the
greatest intensity.
The next step is to feed the poses extracted from each video frame to an algorithm that can make sense of them.
Initially, researchers used the hidden
Markov model (HMM), another statistical technique, this time borrowed
from the world of speech processing,
to take a series of poses and generate a
classification for them.
Take the video of a weightlifter, for
example. Their lift can be subdivided
into three larger-scale actions: a yank
from the ground, followed by a pause
and then the press action that lifts the
bar above the head. Frames within
each segment will match different motion templates. HMM uses probabilities to determine which group of templates best fits an action, and produces
that as its output.
Ryoo says the original HMM-based
paradigm suffered from limitations:
It used per-frame human features,
which were not that reliable. Plus, the
HMMs could only deal with strictly sequential information. An alternative
technique that researchers have combined with HMMs is to treat the x, y,
and time dimensions as a 3D space and

apply templates to shapes in those volumes, as these can be more robust than
frame-based techniques, although results are more abstract. In either case,
there was no notion of hierarchy in the
results. Someone looking for videos of
weightlifting would expect them to be
classified by that overarching activity,
rather than being forced to search for
combinations of yanks, pauses, and
presses. One way to represent that hierarchy is to use grammar rules that
tell the computer how to group actions
into activities.
One example is work presented by
Ramanan and Hamed Pirsiavash, now
based at the Masschusetts Institute of
Technology (MIT), at the CVPR 2014
computer-vision conference in June.
In that work, they combined the ability
to scan across frames from a sequential video with a hierarchical approach
based on a similar type of grammar to
that used to define a number of programming languages. The grammar
they selected could not just group simple actions into composite activities
such as weightlifting, but works with
variations in technique, so it could
handle situations in which the athlete
does not pause between the yank and
press, for example.
An ongoing issue is how to train
systems to handle many different
kinds of movement. Del Rincn says,
The main problem is that you can use
machine learning to recognize actions
for each particular action, but you are
limited by the data you have available
for training.
Much of the current work in movement research focuses on working with
a standard set of video clips that can
form a corpus useful for training other
systems. The work by Pirsiavash and

What we are trying


to do is identify
actions that
were performed
for a reason.

Ramanan, for example, provided together with one approach to deciphering the movements of sportspeople
a new batch of videos on which other
researchers could work. Yet such collections are limited in their ability to
represent the conditions systems will
face when deployed. Its not clear how
representative they are of real-life situations. You take them, use them, and
apply the same techniques to the video
from a surveillance camera, and they
dont work, says del Rincn.
Del Rincn worked with Maria Santofimia, a researcher from the University of Castilla-La Mancha, Ciudad Real,
Spain, and Jean-Christophe Nebel of
Kingston University, Surrey, U.K., on
a method that could make the results
more robust under real-world conditions by providing a degree of contextualization for the actions seen in a
video. For example, faced with a video
of someone picking up a suitcase in
the street, the system can more or less
rule out the possibility of it being part
of a weightlifting activity. By applying
rules from real-life behavior, the system should be able to make more intelligent decisions about what it sees, and
trigger alarms if the activities are seen
as unusual.
Santofimia says, What we are trying to do is identify actions that were
performed for a reason.
One option was to use artificial intelligence techniques based on ontologies or expert-system databases that
capture the circumstances in which
people undertake different activities,
such as weightlifting within a gym.
With ontologies, case-based reasoning, or expert systems, the main disadvantage that they have is that they
can only focus on the situations they
have been taught, says Santofimia.
The researchers opted for an alternative known as commonsense reasoning, which contains a database of
much more generalized rules.
In much the same way the context in
which a sentence is used in languages
with informal grammars may be used
to disambiguate between possible
meanings, commonsense reasoning
provides an additional tool for recognition when combined with the contextfree grammars used in many of todays
experiments. In commonsense, we
describe how the world works and we

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

13

news
ask the system to reason about the general case, Santofimia says.
A further advantage of using reasoning is that it can be tuned to cope
with situations that are difficult to
train for statistically. For example, systems to monitor the elderly will need
to watch for them falling over. Templates built from videos of actors who
are trained to fall may not capture the
movements of accidental falls, and so
may fail to trigger.
When people fall in real life, they
are not acting, says del Rincn. Commonsense reasoning could figure out
that something has gone wrong, without having to learn that precise action.
There is a further advantage of using more generalized commonsense
reasoning, Santofimia claims: We also
deal with different possible situations
in parallel for situations where we are
not sure if the video processing was giving us the right actions. We keep stories alive until we can prove which one
is the most likely. We cant do that with
ontology- or case-based systems.
Much of the current research remains focused on single-person activities. As the area matures, attention will
shift to group or crowd behavior, which
will likely see more complex grammars
be applied to represent movement.
One important limitation of con-

In commonsense,
we describe how
the world works and
we ask the system
to reason about
the general case.

feature extraction and higher-level,


grammar-oriented processing. The
pedestrian-detection systems required
for automated driving have simpler
needs, but Ryoo points out, Even pedestrian detection is far from being
perfect when faced with noise, camera
motion, and changes in viewpoint.
Further Reading
Aggarwal, J.K., Ryoo, M.S.
Human Activity Analysis: A Review, ACM
Computing Surveys (2011) http://bit.
ly/1m5PZ2J

text-free grammars is that they enforce


a sequential structure. In order to capture the richer semantics of high-level
activities with concurrent sub-events,
such as a thief stealing an object while
the other thieves are distracting the
owners, more expressive power will
be required, says Ryoo, adding there
remains plenty to do to provide computers with the ability to recognize and
react to human activities.
Group-level understanding is likely
to be needed for more advanced applications such as robotic control, where
so-called cobots work in the same
space as humans and so need to comprehend movements to avoid injuring them or getting in the way. Much
remains to be done both in low-level

Pirsiavash, H., Ramanan, D.


Parsing videos of actions with segmental
grammars, Proceedings of the 2014
Conference on Computer Vision and Pattern
Recognition http://bit.ly/1BG8iyT
Santofimia, M.J., Martinez-del-Rincon, J.,
Nebel, J-C.
Episodic Reasoning for Vision-Based
Human Action Recognition, Scientific World
Journal (2014), Article ID 270171 http://bit.
ly/1wwac4Y
Yamato, J., Ohya, J., Ishii, K.
Recognizing human action in timesequential images using hidden Markov
model, Proceedings of the 1992 Conference
on Computer Vision and Pattern Recognition
http://bit.ly/1BG8GNU
Chris Edwards is a Surrey, U.K.-based writer who reports
on electronics, IT, and synthetic biology.
2014 ACM 0001-0782/14/12 $15.00

Milestones

Computer Science Awards, Appointments


CRA HONORS SERVICE
OF CERF, AMATO
The Computing Research
Association (CRA) has bestowed
awards on former ACM president
Vinton G. Cerf and Texas A&M
University (Texas A&M) professor
Nancy Amato.
The CRA gave its 2014
Distinguished Service award
to Cerf, who it said has served
on a number of international
committees and used his
influence to guarantee a healthy
development of the Internet.
As ARPA program manager in
the 1970s, he helped develop
and promote the basic packet
technology that enabled the
Internet. In 1992, he co-founded
the Internet Society, helping to
develop the best protocols and
standards for the fast-growing
14

COMMUNICATIO NS O F TH E AC M

network. Cerf chaired the board


of ICAAN (20002007) and
currently chairs the board of ARIN,
organizations that coordinate
domain naming. He has been
a major promoter of IPV6. Cerf
has served on PITAC, chaired the
visiting committee on advanced
technology for NIST and now sits
on the National Science Board.
In addition, the CRA
gave Amato the 2014 A. Nico
Habermann Award, given
annually for outstanding
contributions aimed at increasing
the numbers and/or successes of
underrepresented groups in the
computing research community.
The CRA said Amato, Unocal
Professor and Interim Department
Head of the Department
of Computer Science and
Engineering at Texas A&M, has
| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

been a tireless and highly effective


leader of programs that engage
women and underrepresented
minorities in computing research.
IEEE PRESENTS SAMET
2014 MCDOWELL AWARD
The Institute for Electrical and
Electronic Engineers (IEEE)
Computer Society presented the
2014 W. Wallace McDowell Award
to Hanan Samet, a Distinguished
University Professor of computer
science at the University of
Maryland, for fundamental
contributions to the development
of multidimensional spatial
data structures and indexing,
translation validation, and proofcarrying code.
Samet is a member of the
Institute for Computer Studies
and of the Computer Vision

Laboratory at the Center for


Automation Research, where
he leads projects on using
hierarchical data structures
for database applications,
geographic information systems,
computer graphics, computer
vision, image processing, games,
robotics, and search.
He received a B.S. in
engineering from the University of
California, Los Angeles, and an M.S.
in operations research, as well as
M.S. and Ph.D. degrees in computer
science, from Stanford University.
Samet is an ACM
Fellow, and a Fellow of the
American Association for the
Advancement of Science, IEEE,
the International Association
for Pattern Recognition, and
the University Consortium for
Geographic Information Science.

news
Technology | DOI:10.1145/2676393

Gregory Mone

Intelligent Living
After years of false starts, the smart home is gaining momentum.

IMAGE COURTESY OF OK IDOKEYS.CO M/OP ENWAYS

is any indication, we may be witnessing the dawn of the connected


home era.
In January, Google paid $3.2
billion for Nest, a manufacturer of intelligent thermostats and smoke detectors, then followed that up by acquiring
the home security company Dropcam.
Samsung then purchased Smart
Things, a developer of control systems
for intelligent homes, in August. Major manufacturers like Haier, Sylvania,
and Philips launched innovative smart
home products this year, and Revolv, Insteon, and other companies have seen a
spike in interest in their hubs, the devices that connect to and control a homes
bulbs, switches, locks, and appliances.
Apple didnt miss out on the rush,
either; in June, the company introduced
the new HomeKit feature of its latest iOS
release. HomeKit allows your iOS device
to communicate with smart bulbs, refrigerators, garage doors, and more. So,
instead of buying one of those hubs, or
opening one app to dim your lights, another to turn down the heat, and so on,
you can simply tell Siri what to do.
Experts say the current boom is
more than a passing technological fad.
Thanks in part to a drop in the cost of
components, the entry point is far more
affordable. In the past, upgrading to an
intelligent home required an expensive
installation process; today, the average
consumer can walk into a Home Depot
and purchase a Wink control hub, a
package of smart bulbs, and a compatible motion detector for less than $200.
Of course, there are still glitches
to work out. Some of the new systems
have trouble working with one another,
and consumers wonder if an electronically controlled lock might be vulnerable to skilled hackers. Yet experts say
the combination of the smartphones
power, the lower cost of critical components, and the boom in consumer
interest suggest our homes are only
going to get smarter. Its changing
quickly now, says Brian Jones, direcF M A RKE T AC TIV I T Y

OKIDOKEYS Smart Locks with Smart Keys allows you to lock or unlock your door using your
mobile phone from anywhere, at any time.

tor of the Georgia Institute of Technologys Aware Home Research Initiative,


but its been a long time coming.
Changing Expectations
Thanks in large part to the power and
prevalence of the smartphone, there is
a new kind of inevitability to the idea
of the connected home, according to
Dan Cregg, chief technology officer
at Insteon, an Irvine, CA-based connected home products company. A decade ago, when Cregg showed off a new
connected home feature to his friends,
they would be amazed, but intimidated. Today, Cregg says, the average consumers expectations have changed.
To control or monitor or interact with
your home through your phone almost
seems like second nature, Cregg says.
When I show people opening and closing my garage door from my phone, I
get a much different reaction now than
I did 10 years ago. Now its, oh yeah,
Ive been meaning to get that.
This shift also carries with it a new
set of demands, according to Kent Larson, head of the Massachusetts Insti-

tute of Technology (MIT) Media Labs


Changing Spaces group. Larson, who
has been working on smart home technology since 1998, believes the products and companies that emerge from
the current crowd will have to allow for
customization. Anyone that suggests
there will be a single model for the
home of the future doesnt know what
theyre talking about, Larson says.
The essential feature is that you will
have a high degree of choice.
Until recently, though, companies
were not necessarily developing systems with this in mind, resulting in a
flood of incompatible products. Some
manufacturers built gadgets that transmit and receive signals via Wi-Fi, while
others adhere to the 2.4GHz Zigbee
communication standard. Still others
operate via the 900MHz Zwave protocol. Insteon devices propagate signals
in a slightly higher range.
Initially, this mix limited a customers options to products compatible
with their chosen system. Today, the latest devices are being designed or retrofitted to work with numerous applianc-

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

15

news
es. Insteon develops its own range of
bulbs, switches, and more, but the company also released an update that allows
its hub to control the Nest thermostat.
The next version of the Revolv smart
hub will have seven different radios inside, enabling it to automatically communicate with a wide range of smart appliances, bulbs, locks, thermostats, and
more; once you plug in the hub, the Revolv device scans your home for existing
smart devices, then automatically adds
them to its list, allowing you to control
everything from a single app.
The Spamming Fridge
This flexibility is critical, because users
want to customize their smart homes
to their specific needs.
Some consumers are more focused
on energy consumption. They want
their home to automatically adjust the
lights, thermostats, and window blinds
every time they leave, whether this action is triggered by a motion sensor,
a flipped switch, or a geofence that
tracks when a phone leaves the perimeter of the property.
Others are drawn to alerts. Insteons
Cregg says he receives a text message
when the garage door at his second
home opens, and he notes that frequent travelers can install leak sensors
that let them know if there is a problem
with a broken pipe or overflowing toilet.
The idea of a wirelessly connected
smart lock raises security concerns for
some, but the leading companies rely
on strong encryption to keep hackers at
bay. The Revolv smart hub, which can
connect to smart locks from Yale and
Kwikset, uses 128-bit encryption on all
communications between devices and
the hub. The Zigbee, Zwave, and other
protocols, as well as Apples HomeKit,
rely on end-to-end encryption.
Still, the smart home could create
a different sort of security problem, as
corporate security firm Proofpoint discovered after analyzing a spam campaign coming in to one of its clients.
When the companys experts backtraced the email to identify its source,
We didnt see computers, says Proofpoint vice president of Advanced Security and Governance Kevin Epstein. We
saw home routers and entertainment
systems, smart TVs, and a fridge.
Epstein and his team determined
spammers had set up a program that
16

COMM UNICATIO NS O F THE ACM

Smart homes are


expected to evolve
from a suite of
appliances that
await control to
data-collecting
machines that
respond intelligently
and provide feedback.
randomly pinged Internet-connected
devices and, upon receiving a reply,
queried them to see if they had email
capabilities (many smart appliances
do, for service and software update
purposes). Once it found willing candidates, the program instructed the
appliances to dispatch spam on its
behalf. There was no harm done to
the homes; no milk was maliciously
spoiled. In fact, Epstein admits he is
not sure how the average consumer
should respond if their appliances
turn out to be a source of digital spam;
theres no simple solution, he says.
Smarts in the Walls
While this unexpected activity suggests
consumers might need to find a way to
monitor their smart homes behavior,
the appliances will be studying us as
well. One of the features that set the
Nest thermostats apart is that they aggregate data across their entire user
base and, as a result, learn more about
behavior, and how to adjust themselves
accordingly. Experts say this will become more common as smart homes
evolve from a suite of appliances that
await control to data-collecting machines that respond intelligently and
provide valuable feedback.
MITs Larson notes that in the home
of an elderly person, a smart home system could alert caregivers to potentially significant behavioral changes. For
example, if an elderly man living alone
opens his fridge 25 times per day on average, then one day doesnt open it at
all, this might signal the need for some
sort of intervention.
In the long run, Larson envisions

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

the intelligence in our homes expanding beyond expected items. His groups
CityHome project centers around a
200-sq.-ft. apartment outfitted with a
moving, mechanized module that includes office space, a dining table, and a
bed. Users can transform the space, via
a digital interface, to suit their current
activities. While the CityHome project
was conceived in part as a way to save
space in urban environments, Larson
sees it as a new kind of smart home as
well, since it moves intelligence into the
walls and furniture. We think of it as
the next step in the Internet of Things,
Larson says. Were connecting things
that were not previously connectable.
The connected homes of the future
could also incorporate domestic and
service robots, according to the Aware
Home Research Initiatives Jones. For
the next few years, though, Jones believes smart homes will follow the pattern of the smartphones evolution.
Just as everyone finds a different way
to use their smartphone to fit their
needs, smart home components have
finally hit the market in such a way that
the general population can customize
their experience, he says. Youre going to see smart homes go to a completely different level. As this opens up
more, I think it is going to take off.

Further Reading
The Connected Home: The Future of
Domestic Life, ed. Richard Harper. SpringerVerlag Books, 2011.
Kientz, J.A., Patel, S.N., Jones, B.,
Price, E., Mynatt, E.D., Abowd, G.A.
The Georgia Tech Aware Home, Extended
Abstracts on Human Factors in Computing
Systems, p. 3675-3680.
Brush, A.J.B., Lee, B., Mahajan, R.,
Agarwal, S., Saroiu, S., Dixon, C.
Home Automation in the Wild: Challenges
and Opportunities, Proceedings of the
SIGCHI Conference on Human Factors in
Computing Systems, p. 2115-2124.
Larson, K.
The Home of the Future, A+U magazine,
edition 361, October 2000.
MIT Media Lab CityHome
A video introduction to a smart,
transformable apartment: http://bit.ly/
RABVPX
Gregory Mone is a Boston, MA-based writer and the
author of the childrens novel Dangerous Waters.
2014 ACM 0001-0782/14/12 $15.00

news
Society | DOI:10.1145/2676391

Keith Kirkpatrick

Sensors for Seniors


In-home technologies are helping seniors
stay aware, healthy, and in touch.

IMAGE BY NICL AS A LBINSSON, COURTESY OF GIRA F F T EC HNOLOGIES A B

U S T A FE W short years ago,


it was extremely challenging for caregivers, friends,
and relatives to check in on
an elderly loved one without
making a phone call or visiting them.
Worse, the only dedicated technology
products designed to help seniors were
panic-button alert systems, which were
usually only activated after something
bad had occurred, such as a fall.
Technology is now being deployed
that helps elderly people maintain
their independence, while also providing peace of mind to loved ones who
want to check in with them in a nonintrusive manner. Several companies
have developed systems that use data
fed from sensors located in the home
to track seniors activity patterns,
which can then be used to diagnose if
something is out of the ordinary.
San Francisco-based Lively began
shipping its eponymous sensor-based
activity-tracking service in October
2013, and makes its products available in the U.S. and Australia. Its sensors are designed to be attached to
various commonly used household
items (such as refrigerator doors, toilet
handles, pill boxes, or keychains), and
are embedded with accelerometers to
track motion. When motion occurs,
the sensors send activity updates to an
in-home data hub via Bluetooth, indicating an activity has occurred. The
hub then uploads the data to compare
daily events with normal routines and
healthy preferences.
A dashboard, which can be viewed
by family members via Internet browsers, tablets, and smartphones, will simply indicate a green smiley face next to
each sensor to indicate an activity has
occurred within an established normal
time frame. If it has not, then an email
or text message alert can be set up to
spur someone to check in with their
family member. The service has a onetime activation charge of $39.95, and

Technology is now
being deployed
that helps elderly
people maintain their
independence, while
also providing peace
of mind to loved ones.

then features a monthly service charge


of $24.95.
It starts with a hub, and you plug it
into the wall, and thats literally the installation, says Lively co-founder David Glickman. We have an M2M data
cellular connection, and thats your
network, which is a boon for seniors
that may not have a broadband Wi-Fi
network in their home or an existing

cellular account.
Davie, FL-based CarePredict is a service designed to provide peace of mind
via a wearable sensor. CarePredicts activity-tracking system uses line of sight
technology to link room-identifying
beacons to a wearable wristwatch-like
band. A beacon is placed in each room
in the house to provide location data,
which allows greater correlation between an activity and its location (for
example, cross-referencing an activity
pattern of brushing teeth with a location of being in the living room could
indicate an issue worth investigating.)
Sensor activity data is sent across a
cellular connection to the cloud, where
algorithms analyze it to compare realtime data to a baseline of normal behavior patterns (which are collected
during the first seven days of tracking).
If activity patterns change, an alert can
be sent out to the user, the caregiver, or
a loved one. However, the system is designed to only report anomalies from a
normal pattern of behavior, and can be

A woman interacts with a family member via the Giraff two-way communications platform.
DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

17

news

18

COMM UNICATIO NS O F THE ACM

The CarePredict Tempo wrist-worn sensor detects user location and motion, with built-in
software tracking user activities and transmitting data wirelessly.

introduced in 2010 on a trial basis in an


eldercare day center in Sweden where
caregivers that were known to the elderly residents were asked to operate
the Giraffs. While there was definitely
an initial shock to seeing the faces of
the caregivers on the robot, Von Rump
recalls, very quickly, the Giraff faded
into the background, and it just became a normal interaction between the
resident and the caregiver.
The Giraff has a large display, so it
can present a life-size image of a persons head and shoulders, Von Rump
explains. Its human height, and has
a very high-quality camera, because
you need the wide angle of view to see
a good quality image. The head can tilt

Perhaps the biggest


driver of all of these
solutions is the
benefit of using
technology to detect
problems before they
become emergency
situations.

| D EC EM BER 201 4 | VO L . 5 7 | NO. 1 2

up and down, and [the head] can [mimic] social gestures, such as moving sideto-side, which are very important.
Furthermore, Von Rump notes that
the Giraffs ability to reduce its height
to approximate the height of a person
sitting down acts as an important social gesture that puts subjects at ease.
Part of this fear factor [with telepresence platforms] is the result of, the person is sitting or lying down, and now
you have this human-height device
towering over you, he says.
Perhaps the biggest driver of all of
these solutions is the financial benefit
of using technology to detect problems
before they become emergency situations. Giraffs Von Rump notes that
nursing home care can average in the
neighborhood of $5,000 per month in
the U.S., and his firms service is designed to stave off admittance to these
facilities for as long as possible. We
have not established a price point yet,
but we can certainly devise a service
model where $5,000 is the cost for a
year, Von Rump says. Furthermore,
the Giraff telehealth platform is also
used to manage post-acute care to
avoid the elderly revolving door of
hospital readmissions. The average
cost of a hospital stay for someone over
65 in the U.S. is $24,000; therefore, a
single avoided readmission can pay for
a virtual lifetime of the Giraff service.
Yet not all IT solutions for the elderly are focused strictly on the home

IMAGE COURTESY OF CA REP RED IC T

set up to mask information so it does


not monitor or track specific activities.
As CarePredict founder and CEO
Satish Movva points out, Like my
mom says, youre my son and I love
you, but I dont want you to know how
many times I go to the bathroom.
Because older adults wouldnt accept
being monitored by a video camera, Giraff Technologies AB, a Sweden-based
technology company, has developed a
two-way communications platform that
allows greater interaction between the
elderly and their families and caregivers
as a viable and cost-effective option to
enhance traditional care models.
The Giraff solution, which is described by founder Stephen Von Rump
as an avatar (resisting the label of robot, since the device is unable to operate autonomously), is a mobile, physical embodiment of a person (via the
Internet) in a remote location. Commercially available in Europe for the
past four years, and designed to be
operated remotely by a loved one or
caregiver, it features a large screen that
displays the operators face, and supports direct interaction with the elderly
or invalid person. Giraff can establish a
virtual presence in a way that a static
videoconferencing application (such
as Skype) cannot, and does not support
recording of any kind. Furthermore, unlike a robot, Giraff can only move if it is
being controlled by a remote operator
it is unable to simply start up on its own.
A variety of wireless technologies
can be used to transmit data signals
to and from the avatar, including
Wi-Fi and cellular networks, the latter allowing the robots use in homes
where a person does not already have
a Wi-Fi network set up. Beyond a simple communication tool, the Giraff is
a platform that allows developers to
leverage telehealth applications that
can augment or replace the functions
of a live, in-person home health aide
visit. A remote operator can use Giraff
to administer medication, check a
persons pulse, or visually inspect the
persons house for signs of potential
issues, such as clutter that could contribute to a fall or indicate physical or
cognitive decline.
More than 100 Giraff systems have
been introduced successfully in Europe in care organizations and research groups. The devices were first

news
environment. An IBM research team
in Japan is focusing on ways to enable
technology to support seniors declining cognitive abilities outside the
home. IBM Fellow Chieko Asakawa is
leveraging her teams accessibility research (which revolves around finding
solutions to make everyday tasks easier to accomplish for those with visual
impairment) to adapt it to support the
elderly, who often have impaired or declining abilities, making everyday tasks
such as walking to the store or reading
street signs more challenging to them.
Our approach is based around cognitive assistance, explains Asakawa.
When we look at sensors, GPS, data
analytics, and image, object, and voicerecognition technologies, we found
that we can augment human abilities
or supplement missing abilities.
The primary challenge being addressed by Asakawas team is taking
the massive amounts of data generated by these various sensors, and then
developing an intelligent assistant
that can assist seniors, who are often
unfamiliar with technology or even
intimidated by it.
Asakawa notes that positioning technologies such as GPS are growing as
reliable navigation support. However,
for an elderly person, basic navigation
is simply not fully usable to meet their
needs, as it does not indicate important
details, such as traffic flow, route impediments, or other potential obstructions. Asakawas team is working to
adapt the location data and turn it into
a useful, accessible tool for the elderly.
For example, if local government
data showed a large number of elderly
pedestrians fell down at a specific intersection, an application could take
that data, cross-reference it with location data, and then via a voice alert,
discreetly whisper to the elderly person, letting him or her know they were
nearing that intersection, and providing directions rerouting them to a safer
crossing point.
All told, the key to success for any
technology product aimed at the elder
market is to clearly illustrate why the
product or service will help the elderly
live more active lifestyles.
We want senior citizens to understand the value of information technologies so they can use them in their
daily lives to help them live more ac-

The key to success


for any technology
product aimed at the
elderly market is to
clearly illustrate why
the product or service
will help the elderly
live more actively.

tively, Asakawa notes.


Indeed, demonstrating value to the
senior is at the heart of Livelys LivelyGram photo service, according to Glickman. LivelyGram is a twice-monthly
service through which Lively will automatically compile, publish, and mail to
the elderly relative a personalized booklet of pictures uploaded by their family. Essentially, LivelyGram allows timestrapped family members to share their
photos with an elderly loved one without having to take the time to create
such a photo scrapbook themselves.
[LivelyGram] is not the reason family members buy Lively, Glickman admits, noting that elderly parents often
also suffer from loneliness and isolation, and the photo-sharing service is
an experience that reminds the elders
that Lively isnt just about the daily activity sharing, but also about them getting something in return.
Further Reading
Bruce, C.R.
Informed Decision Making for In-home
Use of Motion Sensor-based Monitoring
Technologies, The Gerontologist, http://bit.
ly/1x75AQu
Will Activity Sensors in the Home Help
Mom?, Geritech, http://bit.ly/1pMwA1V
Nonna Lea and a robot called Mr. Robin,
DigitalAgendaEU, http://bit.ly/1vDpzXQ
Science Nation - Home sensors enable
seniors to live independently, National
Science Foundation, http://bit.ly/1oH0SDO
Keith Kirkpatrick is principal of 4K Research & Consulting,
LLC, based in Lynbrook, NY.
2014 ACM 0001-0782/14/12 $15.00

ACM
Member
News
WORKING WITH STUDENTS
KEEPS LUCENA YOUNG
I dont have
the word
retirement in
my vocabulary;
my students keep
me young, says
Carlos J.P. de
Lucena, formerly chairman of the
Computer Science Department,
dean of the Center of Science and
Technology, and vice-rector at
the Catholic University of Rio de
Janeiro (PUC-Rio), where he now
runs the universitys Software
Engineering Lab.
The septuagenarian, (he
turned 71 in September) father
of four and grandfather of eight
has energy to burn.
As an undergraduate, he
worked as a programmer at the
Computing Center of PUCRio, Brazils first computer
laboratory. In 1965, he was hired
by the Mathematics Department
of PUC-Rio to coordinate the area
of computational mathematics.
In 1968, together with a small
group of colleagues he founded
Brazils first computer science
departmentwhen it was
possible to be an assistant
professor without a Ph.D.
Lucena received a masters
degree from the University of
Waterloo, Canada, in 1969, and
his Ph.D. from the University
of California in Los Angeles
in 1974. He has authored over
450 refereed papers and 19
books in the formal methods
of software engineering. Fluent
in three languages, Lucena
uses his linguistic skills in
various international positions,
including adjunct professor
and senior research associate
at University of Waterloo, and
research fellow at the Fraunhofer
Institute for Computer
Architecture and Software
Technology in Berlin.
His research focuses on
software engineering of multiagent systems. We produce
theoretical and applied results in
biology and telemedicine stem
cell modeling, Lucena said.
I have a good life. I run away
from the Brazilian summer to
teach in Canada in the winter
and then I go to Germany in
July, writing papers and doing
research.
Laura DiDio

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

19

news
News | DOI:10.1145/2685372

ACMs Turing Award Prize


Raised to $1 Million

20

COM MUNICATIO NS O F TH E ACM

(Left) Stuart Feldman, VP of Engineering at Google Inc., and ACM President Alexander L. Wolf
at the November 13 press conference in New York City announcing Googles million-dollar
funding of the ACM A.M. Turing Award.

a profession. Wolf is a professor in the


Department of Computing at Imperial
College London.
Stuart Feldman, Vice President of
Engineering at Google Inc., said Google
is proud to support ACMs Turing Award.
We think its important to recognize
when people make fundamental contributions in computer science, and
we want to help ACM raise awareness of
these innovators and the contributions
they have made to the world.
Since its inception in 1966, ACMs
Turing Award has honored the computer scientists and engineers who created the systems and underlying theoretical foundations that have propelled
the information technology industry.
The award is named for Alan Turing,
the British mathematician who laid the
foundation for todays always-on, interconnected world. Turing envisioned the
power of the thinking machine, leading
the way to innovations that changed
the world: programmable computers,
mobile devices, cryptology, artificial intelligence, robotics, genomics, and the
philosophy of science.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

ALEXANDER L. WOLF
ACM PRESIDENT

The Turing Award


is now funded
at the monetary level
of the worlds
most prestigious
cultural and
scientific awards
and prizes.

The 2014 Turing Award will be presented at the ACM Awards Banquet in
the spring of 2015. For more information about the award and its previous
recipients, please visit http://amturing.
acm.org/.
2014 ACM 0001-0782/14/12 $15.00

PHOTOGRA PHS BY JASON GARDNER

N N O V E M B E R 1 3 , 2 0 1 4 , ACM
announced the funding
level for the ACM A.M. Turing Award is now $1 million.
Google Inc. will provide all
funding for this award, recognized as
the highest honor in computer science
and often referred to as the fields equivalent of the Nobel Prize.
The new amount is four times its
previous level. The cash award, which
goes into effect with the 2014 ACM Turing Award to be announced early next
year, reflects the escalating impact of
computing on daily life through the innovations and technologies it enables.
The new level is also intended to raise
the Turing Awards visibility as the premier recognition of computer scientists
and engineers who have made contributions of lasting and major technical importance to the computing field.
The Turing Award is now funded
at the monetary level of the worlds
most prestigious cultural and scientific
awards and prizes, said ACM President
Alexander L. Wolf. With the generous
support of Google, we can celebrate
the mainstream role of computing in
transforming the world and the way we
communicate, connect, shop, and socialize. We can also commemorate the
pioneering, fundamental contributions
of our ACM Turing Award recipients in
advancing computing as a science and

viewpoints

DOI:10.1145/2676857

Michael L. Best

Global Computing
The Internet That
Facebook Built
The on-ramp might appear free but exiting takes a toll.

W
COLL AGE BY A NDRIJ BO RYS ASSOCIATES/ SH UTT ERSTO CK

H E N FACE BOOK S M ARK

Zuckerberg, in a Wall
Street Journal editorial
published earlier this
year,5 proposed connecting to the Internet those two-thirds
of humanity currently offline the global
computing community took keen note.
Zuckerberg recited the economic benefits of Internet connectivity as well as
the paradisiacal new global sense of
community this increased access will
provide. Taken at his word (and deeds)
Zuckerberg is not proposing increased
access to the open Internet, but instead
the creation of a walled garden for the
worlds poor, free to enter while exacting premium payments to leave.
Last year Facebook teamed up with
a set of mobile operators and handset
manufactures to create Internet.org,
a global partnership aiming to connect the next 5 billion people4 and
this year they launched their app
in Zambia.3 As Zuckerberg describes
it, the app positions Facebook as the
on-ramp to the Internet.2 while also
offering a free set of other basic services including Facebook Messenger
and Wikipedia.
DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

21

viewpoints
There are laudable elements to this
initiative. First is their call to develop
more efficient networks, applications, and appliances that respond to
the infrastructure and resource realities for many in the Global South. Engineering innovations can, for example, help reduce the capital expense
of broadband infrastructure, move
data closer to users in distant parts of
the globe through new caching technologies, or reduce the demand for
data through leaner and smarter applications. This is an argument near
and dear to this columns heart and
an area where the Communications
readership should lead.
Second, Zuckerberg is wise to
foreground cost as a major hurdle
to many in the Global South striving
for network access. However, his description of absent data plans does
not comport with reality for most of
the worlds income-poor since they
use plan-less pay-as-you-go phone
services. Voice, SMS, and data are routinely packaged together in prepaid
units and savvy price-sensitive users arbitrage the offerings, choosing
the most affordable communication
method that meets their needs. Facebooks mega-purchase of WhatsApp
is a perfect illustration of this reality.
Archetypally this app is used to send

Does a Facebook
on-ramp,
even offered
for free, describe
an available,
accessible,
affordable
Internet?

text messages over the data network


at prices cheaper than had they been
sent instead via SMS; shrewd users
move texting to their data network in
order to enjoy a savings.
The problem is not so much affordability of data qua data plans, it is
the unavailability of robust data networks (see the accompanying figure)
along with the generally high overall cost of communication services.
Put simply, the worlds poor will use
these services when they are available
(in terms of infrastructure), accessible
(in terms of value, social factors, edu-

Percentage of the population covered by at least a 3G mobile network.

0% 23%
24% 53%
54% 88%
89% 100%
Source: ITU

22

COMM UNICATIO NS O F THE AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

cation, language, and the like) and affordable. Foregrounding cost is helpfulbut misreading cost as mostly a
matter of cheap data plans misses the
mark.
Does a Facebook on-ramp, even offered for free, describe an available,
accessible, and affordable Internet?
Facebook is neither a neutral nor
open communication platform; it is
a business with an architecture designed to support its business plan.
This is not a criticism; it is just a reality. Jos Marichal, in his book Facebook
Democracy,1 defines the architecture
of disclosure as Facebooks purposebuilt environment that systematically
and in some ways insidiously encourages its users to disclose increasingly
personal revelatory data. Facebook invests millions in perfecting this architecture not with degraded voyeuristic
interest; it is simply their business
model. They capture and commodify
a portfolio of these disclosures and
sell them to their advertisers. And
as Facebook further targets its content based upon disclosures, users
increasingly find themselves trapped
within a search bubble where information discovery is skewed toward
outcomes predetermined by this very
architecture. Intimate disclosures begat constrained discovery.

viewpoints

Calendar
of Events

The Walled Garden:


A Metaphor
I stroll the grounds of this virtual
garden along with all of my best
friends. I chat with my buddies,
play games, shop the many
concessions, or even engage in
serious activities around politics or
education. My friends all love the
garden and so do I, spending hours
a day delighting within its walled
confines.
All the while, the proprietors
are monitoring every aside I
make to a friend, or lingering
glance I place on a storefront
window. The proprietors are well
meaning enough but they realize
someone has to pay for all the
costs associated with the grounds.
They portfolioize my asides and
my glances and sell them to
storefront managers who can use the information to personalize my shopping options,
constraining my experience to match their calculation of my interests.
We feel free in our choices as we linger on the grounds, though of course its wellplanned architecture is not without influences. If the proprietors want us to favor the
revolving door entrance over the swing door they simply recede the swing door back
just a few steps. We feel happy to choose the revolving door though, of course, the
architecture has encouraged us in our choice.
The garden cannot help but to keep growing as more and more people come to enjoy
its varied interests. However, while it is true that many people are relishing the garden
most people the world over are not. Most people simply cannot pay the cost to gain
access to the gardens front gates.
But the manager has a brilliant new idea: free transportation for the worlds less
privileged directly to the garden gates, as long as you agree to saunter even briefly
within its confines. At the entrance gates these newcomers are welcomed freely and
they stream in. But when it comes time to exit, to everyones surprise, they have placed
ticket booths. It was free to enter; now they pay to leave.
Michael L. Best

December 2014
November 30December 2
13th ACM International
Conference
on Virtual Reality Continuum
and Its Applications in Industry,
Shenzhen, China,
Sponsored: SIGGRAPH,
Contact: Jin Xiaogang,
Email: jin@cad.zju.edu.cn
December 25
Conference on Emerging
Networking Experiments and
Technologies,
Sydney, Australia,
Contact: Aruna Seneviratne,
Email: a.seneviratne@unsw.
edu.au
December 812
15th International Middleware
Conference,
Bordeaux, France,
Contact: Laurent Reveillere,
Email: reveillere@labri.fr
December 1317
The 47th Annual IEEE/ACM
International Symposium
on Microarchitecture,
Cambridge, U.K.,
Sponsored: SIGMICRO,
Contact: Krisztian Flautner,
Email: krisztian.flautner@
arm.com

IMAGE BY MA XIM GA RAG UL IN

2015
While Facebooks business model
is based on intimate disclosure (to my
taste, often banal and narcissistic),
the Internets hopeful promise to the
Global South is for rich civic discourse,
democratic development, and economic opportunity. It is possible that these
two objectives are not only inconsistent
but even in opposition. Moreover, a
Facebook on-ramp presents significant
privacy concerns (all user activities are
monitored by Facebook), confounds
network neutrality principles (with premium fees for activities not deemed
basic), and can stymie innovation (as
Facebook oversees apps, imposes narrowing service terms, and the like).
When Bill Gates wanted to increase
Internet access to the poor within the
U.S. he did not privilege Microsoft
products as an on-ramp to the Internet.
He gifted unconstrained open Inter-

net connectivity to the nations public


libraries. Mark Zuckerberg would do
well to follow this lead.
References
1. Jos, M. Facebook Democracy: The Architecture of
Disclosure and the Threat to Public Life. Ashgate
Publishing Limited. Farnham, U.K., 2012.
2. Miners, Z. Zuckerberg wants Facebook to be the
worlds Internet on-ramp. Computerworld (Feb. 2014);
http://bit.ly/1uXoWtc.
3. Tsukayama, H. Facebook-backed app offers free
Internet access in Zambia. The Washington Post (Aug.
1, 2014); http://wapo.st/Zsc8xr.
4. Zuckerberg, M. Is connectivity a human right?; http://
on.fb.me/Zsc68J.
5. Zuckerberg, M. Mark Zuckerberg on a future where the
Internet is available to all. Wall Street Journal (July 7,
2014); http://on.wsj.com/1vTXokd.
Michael L. Best (mikeb@cc.gatech.edu) is associate
professor at the Sam Nunn School of International Affairs
and the School of Interactive Computing at Georgia
Institute of Technology where he directs the Technologies
and International Development Lab.
Ian Bogost, Carl DiSalvo, Jonathan Donner, and Colin
Maclay all provided very helpful inputs to this column.
Copyright held by author.

January 810
The 9th International
Conference on Ubiquitous
Information Management and
Communication,
Bali, Indonesia,
Sponsored: SIGAPP,
Contact: Sukhan Lee,
Email: lsh@ece.skku.ac.kr
January 1517
The 42nd Annual ACM SIGPLANSIGACT Symposium on
Principles
of Programming Languages,
Mumbai, India,
Sponsored: SIGPLAN,
Contact: Sriram Rajamani,
Email: sriram@microsoft.com
January 1619
Ninth Conference on Tangible,
Embedded, and Embodied
Interaction,
Stanford, CT,
Sponsored: SIGCHI,
Contact: Wendy Ju,
Email: wendyju@gmail.com

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

23

viewpoints

DOI:10.1145/2676859

Peter J. Denning

The Profession of IT
The Whole Professional
A new book inspires a reflection on what it means to be
a whole, competent, and effective professionaland may
portend a wave of disruption in education.

24

COMM UNICATIO NS O F THE ACM

tional university to do this. Three experiments begun in the 2000s show


that it can be done in a protected setting and that its students have been
wildly enthusiastic. Mainstream education, which is struggling to produce
value for students, may now be ready.
The New Engineer
In the 1980s I directed RIACS, a research institute at NASA-Ames Research Center that brought computer
scientists together with NASA scientists on big problems in space and

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

aeronautics. Our scientists pioneered


in applying supercomputers instead of
wind tunnels to the design of full aircraft, conducting science operations
from great distances over a network,
and studying neural networks that
could automate tasks that depend on
human memory and experience.
But there was a breakdown: our
NASA customers frequently complained that our engineers and scientists failed to make their deliverables.
This was a major issue, since the research funding for the institute came

IMAGE BY ALICIA KUBISTA /A ND RIJ BORYS ASSOCIAT ES

BO O K invites deep
reflection about what it
means to be a whole engineer. That is, an engineer
who is not only competent at the analytics and technologies
of engineering, but can bring value to
clients, team well, design well, foster
adoptions of new technologies, position for innovations, cope with accelerating change, and mentor other
engineers. The book is A Whole New
Engineer, by David Goldberg and Mark
Somerville.4 The authors summarize
their principles in The Big Beacon
Manifesto.5 What they say applies
equally well to computing professionals. The books invitation could not be
more timely given the building forces
of disruption to education (see my June
2014 Communications column).
Michelle Wiese and Clayton Christensen released a report about how private organizations are developing new
education offers with online, competency-based modules.7 They see a bigger wave of innovation after MOOCs,
threatening an even greater disruption.
Whereas MOOCs automate traditional
classrooms, OCBMs automate skill testing by employers that hire based on
performance rather than credentials.
A Whole New Engineer portends a third
disruptive wave, where students disenchanted with automated classes and
tests seek education that cultivates their
mastery as designers and innovators.
This column summarizes my own
journey on the question of educating
this kind of professional, illustrating
the difficulties of trying to get a tradiN EW

viewpoints
mainly from our individual contracts
with NASA managers. Failure to make
deliverables was a recipe for non-renewal and loss of jobs. NASA managers said, your work is of no value to
us without the deliverables we agreed
to, and our scientists responded,
sorry, we cant schedule breakthroughs. This disconnect seemed
to be rooted in the gap between what
engineering and science schools
teach and the realities of customer expectations in the workplace.
I did my best to lead my people to a
satisfying relationship with their NASA
customers. But I constantly puzzled
over why the disconnect existed and
was so hard to overcome. Around 1990,
I began conversations with Fernando
Flores on what kind of education was
needed for engineers in the 21st century. These conversations led me to write
and publish in 1992 a manifesto, Edu
cating a New Engineer.1 I set out a vision
of what engineers needed to know and
how engineering schools might prepare them. I envisioned well-rounded
engineers who were competent not
only with analyzing and building systems, but skilled with design, innovation, entrepreneurship, teams, mentoring, and self-learning. The learning
environment would be project- and
competency-based. Students would be
partners with faculty in many ways.
I went to George Mason University
to work toward education for the new
engineer. In 1992, several computer
science faculty joined me in proposing
that our department adopt this vision.
After extensive discussions, the faculty
adopted a declaration of a set of base
principles for the vision. But when it
came time to adopt specific changes
implementing the principles, we could
not get the votes in the faculty meetings.
The changes needed just did not fit with
the existing university environment.
My principal partner, Daniel Menasc, and I discovered that our vision
resonated with a project manager in
the DARPA high-performance computing initiative. In 1993, we founded the
Center for the New Engineer backed by
a DARPA grant to apply the principle
of competency-based learning in an
online Web-based hyperlearning environment that brought findings from
high-performance computing research
to students. We focused on the design

While students
welcomed the
idea, most faculty
considered the
approach too much
of a break with
their way of teaching.

of Hyperlearning Modules and the


Hyperlearning Meter system for assessing student progress. We built a
significant library of online modules in
computing, which were used by other
computer science courses as resources
and by Defense Acquisition University.
In the same year I created an experimental design course Sense 21,
which stood for new engineering common sense for the 21st century, a goal
of the New Engineer. The purpose of
the course was to develop students as
designers and innovators of software
that satisfied customers. I drew heavily from the language-action papers
of Fernando Flores (now collected in
a book2). Through many projects and
exercises the students learned to employ the language-action ideas in their
daily work. Their capstone project was
design and produce a small innovation. We defined innovation to be a
new practice adopted in a group, generating more value than an older practice
it displaced. The students employed
the language-action principles to listen and design well, and then to fulfill
their commitments to their customers. All students delivered their projects and documented the innovations
in their customers workplaces. When
they were done, the students were very
satisfied they had learned to generate
a small innovation through an intentional approach. They reported that
their view of innovation had been transformed: whereas all their prior learning
told them that innovations were big
and were the work of geniuses, they
were surprised and delighted to learn
they all could be innovators. They now
saw that innovations could be small

and, by building their listening and design skills over time, they might eventually produce a big innovation. They
were surprised and delighted to learn
that they were all innovators.
I was even more astounded when
students told me, This course transformed my whole life. The languageaction basics were enabling them to be
more effective listeners, communicators, and designers throughout their
lives, not just for classroom projects.
They petitioned me to keep the group together and continue learning together.
So I invented the Sense 21 group. We
met after school once a month and went
over issues they chose where languageaction gave new insights. As each new
section of the course completed, the
graduates joined the group and many
attended the meetings. No student had
ever suggested forming an alumni club
for my operating system class! They
found the language-action material of
Sense 21 so powerful, it made a difference in their lives that they wanted to remember. Although the Sense 21 group
disbanded in 2002 when I left George
Mason, some of the students stay in
touch with me to this day. I was amazed
that an alumni group for a course would
stay together for so long.
My own ability to teach the design
course well improved considerably
when I studied coaching with Richard
Strozzi Heckler and was later certified
as a Master Somatic Coach. This experience left me more convinced than
ever that the vision of Educating a New
Engineer was a powerful and attractive offer for students. Even when we
offered just a small part, students embraced it with great enthusiasm. I was
disappointed that I was not able to sell
this to my department or to my school.
I gave frequent lectures about the New
Engineer and my experience with
Sense 21; while students welcomed the
idea, most faculty considered the approach too much of a break with their
way of teaching engineering.
Olin, iFoundry, and Neumont
Beginning around 1997, three likeminded groups independently came to
believe in ideas like the New Engineer
and laid plans to launch experiments
for a new kind of engineering education. They all believed they could craft
new education offers that would be

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

25

viewpoints

ACM
ACM Conference
Conference
Proceedings
Proceedings
Now
via
Now Available
Available via
Print-on-Demand!
Print-on-Demand!
Did you know that you can
now order many popular
ACM conference proceedings
via print-on-demand?
Institutions, libraries and
individuals can choose
from more than 100 titles
on a continually updated
list through Amazon, Barnes
& Noble, Baker & Taylor,
Ingram and NACSCORP:
CHI, KDD, Multimedia,
SIGIR, SIGCOMM, SIGCSE,
SIGMOD/PODS,
and many more.

For available titles and


ordering info, visit:
librarians.acm.org/pod

26

COM MUNICATIO NS O F TH E AC M

enormously appealing to students and


potential employers.
In 1999, a small team founded the
Franklin W. Olin College of Engineering (see http://www.olin.edu) and designed it from the ground up. They
wanted to graduate engineering innovators who would be leaders in solving
pressing global challenges. They wanted their engineers to be client-centered
and capable of developing systems that
make peoples lives better. They wanted students to learn through handson projects, find their own voices, and
work on teams in partnership with the
faculty. Olins students absolutely love
their school. In just a dozen years, Olin
has achieved numerous high rankings
in various education surveys and is
now much sought-after by other engineering schools trying to rethink their
own approaches.
In 2007, a small team at the University of Illinois decided to transform
their experiments, begun a decade earlier, into an incubator for new educational approaches in engineering. They
called their project iFoundry or the Illinois Foundry for Innovation in Engineering Education (see http://www.
ifoundry.illinois.edu). Their earlier
classroom experiments demonstrated
the effectiveness of student-led teams
in promoting student engagement.
Five departments joined the incubator.
Drawing on reports about Engineers
of 2020 and their own experiences
with students, they formed a vision of
a new engineer. In 2008, they signed a
partnership with Olin College to share
educational methods and insights. As
at Olin, their students became wildly
enthusiastic about learning engineering in the new way.
In 2003, a group from Northface
University (now called Neumont University, neumont.edu) in Salt Lake City,
UT, asked me to help them with an idea
they had been working on for several
years. They were designing a software
engineering degree from the ground
up and were convinced the principles
of Educating a New Engineer would
attract students and industry and
would be accreditable. I helped them
design a three-year project-based software engineering curriculum that used
methods like the modern flipped
classroom, minimized lecture classes, involved industry mentors, and did

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

most of the work in student teams.


They since expanded to five degrees
(computer science, software and game
development, information systems,
technology management, and Web design and development) all based in the
same set of principles and methods.
The students say the experience is intense and the connection to industry
mentors extremely worthwhile.
These three examples demonstrate
that new engineer principles can
flourish in protected settings. The students have been enthusiastic about
their education.
The New Engineer Principles
A Whole New Engineer gathers the New
Engineer principles in use at iFoundry
and Olin into one place. It gives solid
justification based on education history about the pedigree of each principle.
The principles are:
Become competent at engineering
practices and technologies.
Demonstrate competent performance in solving engineering problems, not in taking tests and quizzes.
Become competent at using language for effective coordination and
communicationespecially
speech
acts, disclosing, and listening deeply
for concerns in individuals and their
communities.
Learn to be a designersomeone
who can propose combinations of existing components and technologies to
take care of real concerns.
Learn to be an entrepreneur
someone who can help a community
transform their practices to generate a
better life for them.
Learn how innovation works and
how to detect and navigate the waves of
possible change.
Appeal to each students intrinsic
motivation, the sense that they can invent it for themselves.
Goldberg and Somerville characterize the skill set of the new whole engineer as six minds:
Analytical. Ability to rigorously
analyze problems and apply scientific
and mathematical principles to their
solutions.
Design. Ability to imagine what does
not exist, make unexpected connections, and propose new combinations
of components that solve problems.
Linguistic. Ability to use language

viewpoints
for coordinating, communicating, disclosing, building trust, and orchestrating productive moods.
People. Ability to use emotional intelligence to read and listen to people
and interact effectively with them.
Body. Ability to develop leadership
presence and blend with the movements and energies of other people.
Mindful. Ability to be thoughtful
and reflective, learn from mistakes,
find meaning, and choose the observer.
This way of organizing the skill set is
inspired by Howard Gardners multiple
intelligences.3 The whole engineer is
one who has integrated all these skill
sets into his or her own style.
They also designed the learning environment to produce these six skill
sets in the context of five pillars:
Joy. Finding delight in engineering, science, solving problems, building artifacts, and in satisfying and interacting with clients.
Trust. Earning the assessment that
you are competent, sincere, and reliableyou have peoples best interests
at heart and will not betray them.
Courage. Willingness and emotional fortitude to take risks and deal
with the consequences.
Openness. Willingness to listen to
others without judgment and to seek
out new ideas by interacting with people who do not think like you.
Connectedness, collaboration, com
munity. Willingness to work with others, form communities, and mobilize
networks.
These five pillars might also be
called prevailing moods or dispositions (see my December 2012 Commu
nications column). Not only are all the
faculty practitioners in these moods
but also they cultivate dispositions for
these moods in the students. The students leave with more than a memory
of a wonderful school; they leave with
the dispositions to operate in these
ways in their own workplaces.
Goldberg and Somerville have
mined the bountiful literature of brain,
social, and organizational science for
pragmatic methods of transforming
education. Other engineering educators can use their methods of developing intrinsic motivation, coaching, culture, and change management.
There are many other efforts to engage students in engineering and sci-

The New Engineer


principles offer
a means to reform
the culture
of mainstream
engineering so
that it too will
engage students.

ence in real problems with real customers. These include Engineers Without
Borders, Junior Enterprise, and the
growing number of design competitions and coding academies. These activities attract students in droves. Some
engineering schools are collaborating
with them. However, these activities
are outside the engineering school
and do not promote engagement with
the curriculum inside the engineering
school. The New Engineer principles
offer a means to reform the culture of
mainstream engineering education so
that it too will engage students.
Conclusion
What does this mean for you? Can you
get these skill sets for yourself without
having to go to Olin, iFoundry, or Neumont, enroll in a more mainstream
engineering school that uses these
principles, or wait for reform of engineering education? Current education
of professionals emphasizes the analytical mind; how can you backfill design,
people, body, linguistic, and mindful
mind for yourself (and your kids)?
The current spread of design thinking beyond industrial design into the
business world is encouraging. It offers practical coursework that gives
experience in interviewing customers,
constructing linguistic frameworks
for customer domains, asking openended questions, listening with empathy, and working collaboratively (see
my December 2013 Communications
column). Working with a coach is one
way to accelerate your progress. Companies are making coaching services
available or you can hire a coach.

Coursework in emotional intelligence, leadership presence, and business mindfulness has been customized for engineers by Chade-Meng Tan
of Google.6 His course is a cost-effective
way to get started.
If you have an activist streak, you
can lobby education leaders. Because
they generate high value with students,
the New Engineer principles should be
of interest in universities struggling to
survive in increasingly challenging financial environments. You could share
the book or one of the manifestos mentioned here with your favorite dean or
department head.
If you are a teacher or educator, you
can transform your own teaching and
educational context with these principles. Olin offers regular courses in their
collaboratory (see http://www.olin.edu)
that teach personal and organizational
change for educators. You can also take
training as a coach (see http://www.
coachfederation.org), which will turbocharge your ability to offer your students New Engineer principles.
The principles were easier to ignore
in the 1990s when there were few working examples or financial challenges.
Today, we have at least three success
stories to imitate and an urgent financial need to upgrade the value of engineering and computing education.
Analytical skills are not enough. Let us
all work together to prepare for a future
world in which the professionals heart
is as important as the mind.
References
1. Denning, P. Educating a new engineer. Commun. ACM
25, 12 (Dec. 1993), 8397.
2. Flores, F. Conversations for Action and Other Collected
Essays. CreateSpace Independent Publishing
Platform, 2013; http://conversationsforaction.com.
3. Gardner, H. Frames of Mind: The Theory of Multiple
Intelligences, 3rd ed. Basic Books, 1983.
4. Goldberg, D. and Somerville, M. A Whole New
Engineer: The Coming Revolution in Engineering
Education. ThreeJoy, 2014.
5. Goldberg, D., Somerville, M., Pollock, M. and Garcia,
E.L. Big Beacon Manifesto, 2013; http://bigbeacon.org.
6. Tan, C. Search Inside Yourself: The Unexpected Path
to Achieving Success, Happiness (and World Peace).
HarperOne, 2012.
7. Weise, M. and Christensen, C. Hire Education: Mastery,
Modularization, and the Workforce Revolution.
Clayton Christensen Institute, 2014; http://www.
christenseninstitute.org/publications/hire/.
Peter J. Denning (pjd@nps.edu) is Distinguished
Professor of Computer Science and Director of the
Cebrowski Institute for information innovation at
the Naval Postgraduate School in Monterey, CA, is
Editor of ACM Ubiquity, and is a past president of ACM.
The authors views expressed here are not necessarily
those of his employer or the U.S. federal government.
Copyright held by author.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

27

viewpoints

DOI:10.1145/2676861

Telle Whitney and Elizabeth Ames

Broadening Participation
Innovation and Inclusion
What technology companies, especially startups, need to know about
building great places to workfor her and himin the digital age.
FRANCISCO,

S E AT T L E ,

New York City, Boston


these cities are magnets
for startup companies
inventing breakthrough
technologies that are changing the
way we learn, get around, socialize,
and do our jobs. While these cities
are acknowledged for their socially
progressive urban cultures, the cultures within some of these startup
companies are a far cry from progressive when it comes to gender diversity and inclusion. At most technology
startups, women are underrepresented at all levels.
It seems unthinkable that companies developing technologies for use
by males and females alike would fail
to recognize the benefits of including
women in the product development
process. Yet, while women constitute about half of the U.S. workforce,
they filled only about 23% of computing positions in 2012.a In our article
published in the February 2009 issue
of Communications,1 we reported the
number of women in math and computer science positions had declined
from 33% in 1984 to 27% in 2004. Earlier this year, Google revealed women
held 17% of the companys technical
positions. By publicly releasing this
data, Google joins other companies,
such as Intel, that are shining a spotlight on a problem they are working
hard to fix.
a Anita Borg Institute using data from the Bureau of Labor Statistics Current Population
Survey Household Data Annual Averages.
28

COMMUNICATIO NS O F TH E ACM

One explanation for female underrepresentation is that many technology


organizations have workplaces that are
inhospitable to women. This is particularly true for technology startups with
predominantly young male employees.
Geek culture is embraced and encouraged. Senior staff may have little or
no management training, and social
networks heavily influence hiring decisions. Work/family balance is not considered. The deck is stacked against
womens being recruited or retained in
such environments.
Some companies, including Google
and the other 40+ partners of the Anita
Borg Institute, are taking important
steps to increase the participation of

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

women in their technology organizations. Most are established companies


that have been around long enough to
experience what research has shown:
that women are essential to their innovation, creativity, and competitiveness. The companies simply cannot
afford to lose them.
When these mature technology
companies acquire startups (as so
many do), they face the challenge of
evolving the culture of the acquired
company so that all employees can
thrive. There is often a lot of work to
be done to instill a culture of inclusiveness. Startup companies, whether
independent or newly acquired, have
much to gain by learning from estab-

IMAGE F RO M SH UTT ERSTOCK.CO M

AN

viewpoints
lished companies that are committed
to workforce diversity.
For over 15 years, the Anita Borg Institute (ABI) has worked with women
technologists and the organizations
that employ them. Our expertise, body
of research, educational sessions, and
major events make ABI a valuable resource for organizations that want
to better recruit, retain, and advance
women technologists. In this column,
we describe some of the ways ABI is
helping its partner companies to create workplaces that welcome women
and men alike.
Informing companies of where
they stand. The first step for a company
seeking improvement is to understand
the current state. This applies equally to
diversity metrics as to product specs or
customer engagement statistics. While
data from the Equal Employment Opportunity Commission (EEOC) can help
companies determine the participation
of women in their overall headcount,
the EEOC does not report data specific
to the technical workforce.
To clearly view where they stand,
companies must know the percentage
of women at the entry, mid, and senior
levels of their technical workforces.
They also need visibility into the participation of women in management
positions versus technical individual
contributors (such as members of technical staff). And, they need to be able to
compare this data to industry benchmarks and peer companies. Once they
fully understand their current state, organizations can review data over time
to determine whether they are making
progress toward their workforce goals.
Several years ago, ABI recognized
there was an unmet need to better understand and measure the technical
workforce. No benchmarking data existed, in large part because there was a
paucity of research relating to the technology segment of the workforce and
even less about the representation of
women in technical positions. The ABI
Board of Trustees launched the Top
Company for Women in Computing
Initiative in 2010 to give companies the
quantitative analysis they needed to
establish performance baselines. With
participation from leaders in industry and academia, we established the
first methodology for benchmarking
womens participation in the technical

Our work with


partner companies
has shown us that
maintaining an
inclusive culture
requires commitment
from all parts
of the organization.

workforce. We also developed the first


clear definition of the technical workforce as it relates to computing.
Today, the Top Company Initiative
is the only source for cross-company
data about technical women at specific
job levels. It is widely recognized as the
authoritative resource for companies
that want to know how they measure
up when it comes to recruitment, retention, and advancement of their women
technologists. An important result of
the Top Company Initiative is companies can compare their diversity statistics to those of companies in their peer
group. This year, 24 companies participated in the Top Company Initiative,
including American Express, Bank of
America, eBay, EMC, Facebook, Goldman Sachs, Google, HP, Intuit, Microsoft, NetApp, salesforce.com, SAP, VMware, and Yahoo. Companies that have
participated over several years can analyze changes over time and measure the
pipeline as women advance through
each stage of their career paths. Once
companies are able to identify the exit
points for women on the technical
track, they can more effectively address
and remediate the root causes for their
departure. Many partner companies
have incorporated Top Company Initiative measurements into their internal dashboards to ensure visibility and
management accountability.
Helping companies institutionalize
diversity as an organizational priority,
from the top down. Senior managers are
important role models, and their individual actions make a difference. Managing by example is essential for companies that want to engender change. Last
year, John Chambers, CEO of Cisco, an

ABI partner company, issued a memo


to top managers stating that company
leaders needed to drive a culture change
to eliminate gender biases in the workplace.b Vijay Anand, Vice President and
Managing Director, Intuit India, said:
At Intuit, diversity and inclusion are
core values we live by. A diverse workforce that mirrors our customer base
helps us build deeper empathy and delightful solutions for our customers.c
Each year, ABI hosts the Grace Hopper Celebration of Women in Computing (GHC), the worlds largest gathering
of women technologists. In 2013, over
4,700 women attended GHC, representing more than 350 companies, 400 academic institutions, and 50 countries.
ABI holds GHC India to address issues
specific to India and its culture.
Included in GHC activities is a Technical Executive Forum, where high-level executives meet to share experiences,
reinforce commitment to diversity, and
recommend specific initiatives. Executives from ABI partner companies learn
from each other and, through their
presence and participation, demonstrate that gender diversity is a priority.
This past spring, we held our first Technical Executive Forum in India.
In addition, ABI holds meetings
several times each year for our partner
companies, where we share recent research and best practices and discuss
what is and is not working to recruit,
retain, and advance women technologists. These meetings offer companies a
rare opportunity to learn from each other and hear firsthand about initiatives
that are having a demonstrable impact.
To make gender diversity an integral part of corporate culture, organizations must formally train managers in best practices and hold them
accountable through goal setting
and measurement. In our 2013 paper
Women Technologists Count, we
make recommendations, grounded in
research, for management training,
development, and accountability. One
such recommendation is that companies make retention goal achievement
part of a managers performance evaluation. At IBM, an ABI partner company,
targets for the recruitment, retention,
b Reported by Kara Swisher in AllThingsD on
March 13, 2013; see http://bit.ly/1qETY7l.
c Intuit press release dated December 26, 2012.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

29

viewpoints
CACM_TACCESS_one-third_page_vertical:Layout

ACM
Transactions on
Accessible
Computing

This quarterly publication is a


quarterly journal that publishes
refereed articles addressing issues
of computing as it impacts the
lives of people with disabilities.
The journal will be of particular
interest to SIGACCESS members
and delegates to its aliated
conference (i.e., ASSETS), as well
as other international accessibility
conferences.

www.acm.org/taccess
www.acm.org/subscribe

30

COMM UNICATIO NS O F THE AC M

6/9/09

1:04 PM

Page 1

and advancement of women are set


and communicated from the executive
to line-staff level. Accountability on all
diversity metrics is tied to managerial
evaluation and compensation.
Changing the culture and organizational practices that inhibit womens
progress. To build workplaces where
women technologists can contribute
and thrive, companies must take a
hard look at whether their corporate
cultures promote diversity. Often unintentionally, companies create work environments that alienate women and
drive them out of the technical workforce. Our work with partner companies has shown us that maintaining an
inclusive culture requires commitment
from all parts of the organization. For
example, Intelan ABI partner companyestablished its Command Presence Workshop to train and provide
experience for women technologists to
effectively present to male-dominated
executive audiences in situations that
are highly dynamic and intense. So successful was this workshop that it is now
offered for all employees.
Women face inequities, large and
small, starting at the recruitment process and throughout their climb to
senior levels. In our 2012 paper, Solutions To Recruit Technical Women
(see http://bit.ly/1wmeV6v) we describe
how unconscious biases lead organizations to define a cultural fit for recruits, a stereotype that excludes many
qualified female applicants. These
same unconscious biases are the root
cause of condescending and dismissive treatment of women in the workplace. In the paper, we give specific
recommendations for retooling the
hiring process, including institution of
a blind rsum screening process and
requiring that at least one viable female candidate be considered for every
job opening. These and other recommendations were informed by research
conducted for Climbing the Technical Ladder (see http://bit.ly/1tWXjA6),
ABIs groundbreaking study of women
and men pursuing technical careers.
A highlight of each years Grace Hopper Celebration is the recruiting event,
where GHC sponsors access rsums
from thousands of women candidates
for technical positions. Companies
have the opportunity to interview candidates on site, in an environment

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

free of unconscious biases. GHC is


renowned as the single best place to
recruit women for jobs in computing,
with 165 companies participating in
the GHC recruiting event in 2013.
The Grace Hopper Celebration is
helping partner companies make big
strides toward changing another aspect of corporate culture that drives
women awaythe feeling of isolation
and dearth of women role models and
professional networks. Women outside a male-dominated professional
network are blocked from accessing career opportunities, mentors, and technical exchanges. Seventy-nine percent
of attendees said they felt less isolated
as a woman in technology as a result
of participating in the 2013 GHC. At
GHC, women technologists are able to
receive inspiration from role models,
network with peers, and learn about
professional and technical developments. GHC brings together women at
different stages of their careers, as well
as male industry leaders, and provides
a unique venue for women to foster
networks and improve collaboration.
ABI partner companies have come
a long way in evolving their organizations, policies, and practices to promote
gender diversity. We have seen measurable progress among companies that
participate in the Top Company Initiative. At the same time, the companies
recognize they still have much more to
achieve. These established companies,
including those mentioned in this column, are demonstrating their commitment to change by acknowledging the
gender diversity problem and taking
tangible steps to attract and retain valuable technical talent. For startup companies that hope to succeed and grow
their organizations, now is the time to
be learning from their more established
counterparts. When it comes to creating an inclusive workplace, it can never
be too soon.
Reference
1. Klawe, M., Whitney, T., and Simard, C. Women in
computingTake 2. Commun. ACM 52, 2 (Feb. 2009),
6876.
Telle Whitney (tellew@anitaborg.org) is President
and CEO of the Anita Borg Institute for Women and
Technology in Palo Alto, CA.
Elizabeth Ames (elizabetha@anitaborg.org) is Vice
President, Strategic Marketing and Alliances, at the Anita
Borg Institute for Women and Technology in Palo Alto, CA.
Copyright held by authors.

viewpoints

DOI:10.1145/2676863

George V. Neville-Neil

Article development led by


queue.acm.org

Kode Vicious
Port Squatting
Do not irk your local sysadmin.

Dear KV,
A few years ago you upbraided some developers for not following the correct
process when requesting a reserved
network port from IETF (Internet Engineering Task Force). While I get that
squatting a used port is poor practice,
I wonder if you, yourself, have ever
tried to get IETF to allocate a port. We
recently went through this with a new
protocol on an open source project,
and it was a nontrivial and frustrating
exercise. While I would not encourage
your readers to squat ports, I can see
why they might just look for unallocated ports on their own and simply start
using those, with the expectation that
if their protocols proved popular, they
would be granted the allocations later.
Frankly Frustrated
Dear Frankly,
Funny you should ask this question at
this point. This summer I, too, requested not one, but two ports for a service
I had been working on (Conductor:
https://github.com/gvnn3/conductor).
I have always been annoyed there is
not a simple, distributed, automation
system for orchestrating network tests,
so I sat down and wrote one. The easiest way to implement the system was to
have two reserved portsone for the
conductor and one for the players
so that each could contact the others
independently without have to pass
ephemeral qports around after they
were allocated by the operating system
during process startup.

Simple enough, you might think. It


is not actually IETF to which one appliesit is IANA (Internet Assigned
Numbers Authority). It has a form you
fill out on its Web site, detailing your
request (https://www.iana.org/form/
ports-services), which asks fairly reasonable questions about who you are,
which transport protocol your protocol
uses (UDP, TCP, SCTP, and so forth),
and how the protocol is used. Because
there are only 16 bits in the port field
for UDP, TCP, and SCTP, space is limited, so you can see why IANA would
want to be careful in its port allocations. Looking over the current assign-

ments, we can see that nearly 10% of


the space has already been allocated
for TCP, with more than 6,100 assigned
ports for TCP.
I submitted my request for a pair of
ports over TCP and SCTP on July 7.
I applied for both because it made
sense to address both of the currently
available, reliable, transport protocols. As I write this, it is September 6,
and I am assured that by September 8
I will have a single port assigned; I finally got the port assignment on September 18. Lets look at the process.
Once you submit your port request,
it goes into a ticketing system, RT (re-

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

31

viewpoints
quest tracker), which is looked after
by someone whom I will call a secretary. The secretary seems to do some
form of triage on the ticket and then
passes it along to someone else. For
the past two months, the secretary
asked clarifying questions about the
use of the two port numbers. It was
plain from the interaction that the
secretary did not have any significant
networking knowledge but acted as a
pass-through for the experts reviewing the case. As might be expected
with any sort of overly bureaucratic
process and with this form of telephone game, information was often
lost or duplicated, requiring me to
explain at length how I was going to
use the ports. In the end, I was contacted by an expertsomeone actually knowledgeable about networking technologyand we agreed the
service could be built with one port
number. I say agreed, but mostly I
relented, because I was going to do
this right, even if I put my fist through
a whiteboardand let me tell you, I
came very close to doing just that.
This brings me to a few statistics
about the assigned numbers. Many of
the assignments for TCP are not for
a single port, but for multiple ports,
meaning the number of services is
fewer than the 6,100-plus assigned
ports. Not only are there many services with more than one port, but
it would also seem that dead assignments are not garbage collected,
which means that although only 10%
of the space is used, there is no way
to reclaim ports when protocols or
the companies that created them die.
Looking through the list of assigned
ports is a walk down the memory lane
of failed companies.
All of which is not to encourage people to squat numbers, but it is pretty
clear that IANA could do some work
to streamline the process, as well as
reclaim some of the used space. The
biggest problem actually exists in the
first 1,024 ports, which most operating
systems consider to be system ports.
A system port is usable only by a service
running as root, and this is considered
privileged. The domain name system,
for example, runs on port 53. It is in
this low space that IANA needs to get
its collective act together and kill off a
few services. Although I am sure all of
32

COMMUNICATIO NS O F TH E AC M

Systems
administrators
are often the busiest
and most harried
people at any IT site.

you are using port 222Berkeley rshd


with SPX autheach and every day.
KV
Dear KV,
I have been revising the logging output
for a large project, and it seems every
time I propose a change, our systems
admins start screaming at me to revert
what I have done. They seem to think
the format of our log output was set in
stone at version 1 of the product and
that I should not actually touch anything, even though the productnow
at version 3does quite a bit more
than it did in version 1. I understand
that changing the output means they
will have to change some scripts, but I
cannot help it if there are new features
that need to log new information.
Log Rolled
Dear Logged,
I do not know if you know this, but
systems administrators are simply
lazy layabouts who spend all their
days slacking off work, putting their
feet up the desk, and sipping single
malts while the boss is not looking.
Actuallyin point of factsystems
administrators are often the busiest
and most harried people at any IT
site, and they are the people responsible for knowing if all the systems
are UP or DOWN. If you capriciously
change the logging output on their
systems, the tools they have lovingly
crafted to track the performance of
your system will indicate things are
DOWN when they are probably not,
and this will result in a lot of screaming. I like coding in a quiet environment; I do not like screaming so do
not make the sysadmins scream.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

There are good ways and bad ways


to update log output. Inserting a new
column at the beginning of each line,
thereby throwing off all the following
columns, is an incredibly bad way of
updating a log file. In fact, the first columns of any log output should always
be the date and timewith seconds.
Using the date for the first column
makes writing analysis scripts far easier. Just like extending a programming
API, unless you have a very good reason, you should always add new information at the end of the line. Extra columns are the easiest to ignore and the
least likely to cause the sysadmin tools
to go nutty. That therefore reduces the
amount and volume of screaming in
the office (see my previous mention of
offices and quiet).
Another less offensive way of updating log output is to add whole new
lines of information, so that scripts can
look at the old lines correctly and, for
as long as possible, ignore the new information. Allowing the script authors
some time to update their scripts is
just the kind of thing you would want
to encourage.
Finally, you might simply add an
option to the program to output the
old log format so the people running
your software have time, again, to update their scripts, or, perhaps, they really do not need the new information
and would like the chance to use your
system without touching their pristine
and beautiful scripts. Think first before
forcing new information on the user.
KV
Related articles
on queue.acm.org
Error Messages: Whats the Problem?
Paul P. Maglio, Eser Kandogan
http://queue.acm.org/detail.cfm?id=1036499
Collaboration in System Administration
Eben M. Haber, Eser Kandogan, Paul Maglio
http://queue.acm.org/detail.cfm?id=1898149
Advances and Challenges in Log Analysis
Adam Oliner, Archana Ganapathi, Wei Xu
http://queue.acm.org/detail.cfm?id=2082137
George V. Neville-Neil (kv@acm.org) is the proprietor of
Neville-Neil Consulting and co-chair of the ACM Queue
editorial board. He works on networking and operating
systems code for fun and profit, teaches courses on
various programming-related subjects, and encourages
your comments, quips, and code snips pertaining to his
Communications column.
Copyright held by author.

viewpoints

DOI:10.1145/2629458

Martin Naedele, Rick Kazman, and Yuanfang Cai

Viewpoint
Making the Case
for a Manufacturing
Execution System for
Software Development

Seeking to improve information integration throughout the manufacturing process.

O D AY S S O FT WARE D E V E LOP-

M EN T process is supported
by many tools such as integrated development environments, configuration
management systems, issue tracking
databases, requirements management systems, estimation tools, time
accounting applications, as well as
enterprise resource planning systems
for human resources and finance
data. What is missing is information
integration with the goal of enabling
software development management
to make informed decisions that cut
across the stovepipes of different tools
and stakeholder concerns. Without
such information integration, todays
software managers are doubtlessly
making suboptimal decisions about
productivity, quality, and resource allocation.
Our vision is inspired by the model
of a manufacturing execution system
(MES)6 (see Figure 2), which is used in
manufacturing industries.1,5 The success of MES systems relies upon integrating data from various aspects of
the manufacturing process.
Based on the data continuously collected and integrated throughout the
process, an MES can aid in planning
and estimation accuracy, support of
process improvement through metDEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

33

viewpoints
Figure 1. MES areas and data dependencies.

MES functional component


Performance
analysis

Data flow

Resource
allocation/status

Labor
management

Process
management

Maintenance
management

Quality
management

Product
tracking

Data collection and acquistion


Production process

Dispatching

Document control

Scheduling

Figure 2. Information integration from multiple sources to determine total cost of ownership of a feature.

Total Cost
Integrated decision support system
(total cost of ownership scenario)

Requirements
database

Work item
tracking system

Developer time
accounting system

Defect
tracking system

Figure 3. Information integration from multiple sources to track and trace defects.

Defect traceability
Integrated decision support system
(defect traceability scenario)

HR staff and
expertise database

34

Work item
tracking system

COMMUNICATIO NS O F TH E ACM

SW and tools
version and
configuration
management system

Defect
tracking system

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Customer and
deployment/license
database

rics, better staff and talent management, lower production costs, better
management of compliance, better
supplier management, shorter time
to market, alignment of local production objectives with global enterprise goals, and reduction of manual
data entry. Figure 1 illustrates the 10
function areas supported by an MES.
Data is collected from the production processhere software developmentand used in various analysis,
supervision, and execution control
subsystems. The production process
is also driven by resource allocation
(for example, Fred, Wilma, and Barney will work on the database schema
renormalization project), task scheduling (for example, the UI refresh task
needs to be done before the middleware upgrade is initiated), and task
dispatching (for example, Fred should
work on work-item 1763 starting on
Monday, January 17th) decisions
made in the MES, and the humans
involved are supported by documentation for production processes.
Given recent advances in software
management tools, we observe that
most information needed for a soft
ware MES is actually becoming available. To illustrate how the benefits of
such information integration could
be realized in software development
management, we describe five scenarios that could be enabled by such a
software MES. Each of these scenarios ties together data from different
tools, providing insight that is largely
unachievable today.
Scenario 1:
Total Cost of a Feature
The total cost for a feature consists of
design, implementation, test, and deployment costs, as well as the costs to
fix defects or other maintenance work
over its lifetime. In addition, there
might be costs related to marketing,
standardization, certification, or recruiting and retention of certain specialists related to that feature.
To calculate the total cost of a
feature, it is necessary to connect
the features requirements in the
requirements management system
with resulting work items. The work
items need to be connected to entries
in the developer accounting and billing system. We need to separately

viewpoints
track activities like design, implementation, and test to different cost
categories in the time accounting
software. After initial development,
defects from the issue tracking system need to be connected to features
as well as activity-type effort and billing information (see Figure 2). To facilitate such a correlation, a software
MES will use a common information
and identifier model.
Knowledge about the total effort
and resulting cost of a feature would
be useful for product management,
for setting development priorities,
and for pricing the feature for customers as well as for development
management to improve future effort
estimates, for example, to map story
points to effort and cost values. It will
be especially interesting to compare
the development and maintenance
parts of the total life cycle cost of a
feature relative to other features.
Scenario 2: Developer Assignment
According to Expertise and
Personal Growth Plans
On-the-job training of developers as
well as the formation of a cross-trained

team requires that developers get opportunities to work on tasks where they
can build new expertise. This is typically captured in annual goal-setting
documents and related HR systems,
but such targets are often overlooked
when the teams for a development task
are assigned, because the person doing
the resource assignment may not be
the developers line manager and does
not have visibility into the HR competence and objective management systems, and because the cost for such
cross-training cannot be estimated
due to the lack of readily accessible historical figures.
A better system would combine the
project resource allocation and scheduling applications with the HR system
so that data about staff capabilities,
levels of expertise, and productivity are
automatically considered. In addition,
the assignment of developers without
relevant expertise, if such involvement
is planned for their personal growth,
can be planned.
Prevailing software management
processes are currently separated from
HR information, and developers expertise and productivities over time are

not tracked in current software management tools.


Scenario 3:
Compliance Documentation
Software-based systems today must
comply with many regulations, and
this aspect will become even more important in the future. Compliance relates, for example, to intellectual property ownership and licensing, security
and safety properties, as well as other
legal and contractual obligations, such
as export and arms control. The required evidence for compliance can be
connected to development staff, processes, and artifacts.
To provide compliance information, every change set in the configuration management system must be
connected with provenance documentation as well as information
about any safety, security, or other
certifications that apply to this version of the artifact. In addition, every
modification of an artifact must be
associated with links to all persons
involved in the creation, test, review,
and release of the version. It must
be possible to extract, from the HR

Your next job is waiting.


Many of todays senior tech jobs go unfilled as candidates
lack the advanced skills and training needed. Demonstrate
your commitment to get ahead and earn CEUs by completing
non-credit courses from Georgia Techs Master of Science in
Computer Science online program.
Each course is just $399.
For more information or to register, visit
pe.gatech.edu/omscs-acm

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

35

viewpoints
system, information about those persons, including their training, certification, and licensing records, as well
as attributes such as their nationality
or level of security clearance.
It might not be known, in advance,
what kinds of compliance documentation will be needed later in the product
life cycle. Thus it is important to have
a flexible query interface that supports
the creation of compliance reports
from all cross-linked data sources.
Prevailing software management tools
focus on the tracking of software artifacts, but comprehensive information
about people and associated compliance items is largely missing.
Scenario 4:
Traceability of a Defect
In quality-critical manufacturing
for example, pharmaceuticals or food
productsit is possible to trace each
quality issue to determine which
people, machines, ingredients, and
processes were involved and who else
could be affected by the same issue.
This same capability would be desirable for critical software products (see
Figure 3), which means for every artifact involved in a defect, it must be
possible to determine all persons and
tools (such as compilers) that were
involved in the development. In addition, one should be able to identify all
other development artifacts that were
created by the same tools and/or persons to check whether similar defects
exist there as well.
Furthermore, it would be desirable
to have a link between the software configuration management system and the
license management database recording each deployment of the software,
so that all customers/users of a certain
problematic version or configurations
can be informed about the problem
and possible fixes, if necessary.
Scenario 5:
Managing Technical Debt
For any long-living and complex system, it is important to keep track of
the health of the underlying subsystems and components. This is true
for manufacturing plants as well as
for software systems. While software,
unlike physical assets, does not objectively deteriorate over time, it ages
through increasing divergence of
36

COMM UNICATIO NS O F THE ACM

Currently,
correlating all
the necessary
information is
expensive and
awkward, but
not impossible.

expected and actual levels of quality. The phenomenon of software


maintainability degrading over time,
primarily due to short-term-focused
bug-fixing and feature-adding activities, has been described as a type of
technical debt.2
Shall we spend time refactoring
or just keep adding new features?
is a recurring dilemma for software
managers. Dealing with this problem strategically requires optimal investment decisions for use of limited
software maintenance budgets. To
support such decisions, we first need
to identify and quantify the trouble
spotsareas of technical debtby
calculating effort, process metrics,
and structural complexity metrics
from a project repository. For example, we could monitor per file the
average time needed to fix a bug or
make a change, how coupled it is to
other files, and whether it is historically implicated in many high-severity
bugs.7 Similar to the previous scenarios, we can extract such information
from the production process of a software MES, concretely, the source code
repository, version control, and issue
tracking systems.
But just identifying potential trouble spots is not enough. To make optimal decisions quickly, management
has to balance multiple factors, additionally taking into account the future
quality of the product, impending
requirements and associated deadlines, the available skills of developers, and the costs of development,
maintenance, and operations, which
involves multiple areas of a software
MES. In the end, virtually every decision in a software project is an eco-

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

nomic decision, and such decisions


should be made based on a comprehensive software MES.
Conclusion
While the recording of the information underlying the scenarios described in this Viewpoint may not
be standard practice in all software
companies today, most of it is actually available. The challenge is to
integrate information from heterogeneous data produced by incompatible tools, and realize traceability
throughout the development process.
Currently, correlating all the necessary information is expensive and
awkward, but not impossible. We have
already begun to realize one of these
scenarios in a research decision-support system that aids in identifying and
measuring modularity debt3 to support refactoring decisions. Microsoft
launched a similar information integration project called CODEMINE.4
Clearly, much more work is required to make this entire vision a
reality. This is a call to action for the
software community.
References
1. Bajric, A., Mertins, A.K., Rabe, M., and Jaekel, F. A
success story: Manufacturing execution system
implementation. In Enterprise Interoperability IV
(Springer 2010), 357366.
2. Brown, N., Cai, Y., Guo, Y., Kazman, R. et al. Managing
Technical Debt in Software-Reliant Systems. In
Proceedings of the FSE/SDP Workshop on the Future
of Software Engineering Research at ACM SIGSOFT
FSE-18, (Santa Fe, NM, Nov. 2010).
3. Cai, Y., Kazman, R., Silva, C.A., Xiao, L., Chen, H-M.
A decision-support system approach to economicsdriven modularity evaluation. In Economics-Driven
Software Architecture, Elsevier, 2013.
4. Czerwonka, J., Nagappan, N., Schulte, W., and Murphy,
B. CODEMINE: Building a software development data
analytics platform at Microsoft. IEEE Software 30, 4
(JulyAug. 2013), 6471.
5. Manufacturing Execution System (MES) Market
Global Forecast and Analysis (20112016) (Feb. 2012);
http://www.marketsandmarkets.com/Market-Reports/
manufacturing-execution-systems-mes-market-536.
html.
6. MESA White Paper 6. MES Explained: A High Level
Vision, 1997; MESA Organisation; http://www.mesa.
org/pdf/pap6.pdf.
7. Schwanke, R., Xiao, L., and Cai, Y. Measuring
architecture quality by structure plus history analysis.
In Proceedings of the 34th International Conference
on Software Engineering, May 2013.
Martin Naedele (martin.naedele@ch.abb.com) is a
member of the Information Technology Department at
ABB Corporate Research in Baden, Switzerland.
Rick Kazman (kazman@hawaii.edu) is a professor of
information technology management in the Department of
Information Technology Management at the University of
Hawaii in Honolulu.
Yuanfang Cai (yfcai@cs.drexel.edu) is an associate
professor of computer science in the Department of
Computer Science at Drexel University in Philadelphia, PA.
Copyright held by authors.

ACMs Career
& Job Center

Are you looking for


your next IT job?
Do you need Career Advice?
The ACM Career & Job Center offers ACM members a host of
career-enhancing benefits:

A highly targeted focus on job


opportunities in the computing industry

Job Alert system that notifies you of


new opportunities matching your criteria

Access to hundreds of industry job postings

Resume posting keeping you connected


to the employment market while letting you
maintain full control over your confidential
information

Career coaching and guidance available


from trained experts dedicated to your
success

Free access to a content library of the best


career articles compiled from hundreds of
sources, and much more!

Visit ACMs

Career & Job Center at:


http://jobs.acm.org
The ACM Career & Job Center is the perfect place to
begin searching for your next employment opportunity!

Visit today at http://jobs.acm.org

practice
DOI:10.1145/ 2677032

Article development led by


queue.acm.org

Soon every company will be


a software company.
BY ERIK MEIJER AND VIKRAM KAPOOR

The
Responsive
Enterprise:
Embracing the
Hacker Way
2014, Facebook, founded in 2004, is in the
top 20 of the most valuable companies in the S&P 500,
putting the 10-year-old software company in the same
league as IBM, Oracle, and Coca-Cola.3 Of the top five
fastest-growing companies with regard to market
capitalization in 2014 (Table 1), three are software
companies: Apple, Google, and Microsoft (in fact,
one could argue that Intel is also driven by software,
making it four out of five).
Hot and upcoming companies such as Uber, Tesla,
and Airbnb, which are disrupting the traditional
taxi, car, and hotel markets, respectively, are also all
fundamentally software companies.
AS OF JU LY

38

COM MUNICATIO NS O F TH E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Conversely, the bottom five companies, which lost market capitalization


in the first half of 2014 (Table 2), are
mostly traditional enterprises in business for decades.
Given this information, the logical
question to ask is why are softwarebased companies taking over the
world?2 The answer is simply that powering companies by software allows
them to be responsive and data driven
and, hence, able to react to changes
quickly. To explain this, lets take an informal look at control theory.
In control theory, an openloop
(nofeedback) control system computes the control input to the system
using only the external input, but
without taking into account the current output of the system (Figure 1). An
openloop control system works well
with full knowledge of a static world,
but it falls apart when the environment
evolves, or when there is no perfect
model of the system under control. An
example of an openloop system is the
cab driver who after every trip returns
to the same hotel to hang out with his
fellow cabbies and smoke a few ciga-

IMAGE BY SERGEY M IRO NOV

rettes, with a small chance of picking


up new customers, and without taking
into account that theater performances downtown have just finished and
thus demand is elsewhere.
A closedloop control system takes
into account the current output of the
system and feeds this information
back to the controller, which combines these measurements with the
current external input to continuously
correct and optimize the system under
control (Figure 2). Uber, for example,
knows the current traffic conditions,
the exact supply and demand for
transportation at any instant, and the
historical price elasticity of customers;
hence, it can optimize pricing for taxi
rides in real time and direct drivers to
the locations with the highest demand
for transportation.
In Microsoft Office, new features
were always introduced and tested via
extensive user studiesuntil Office
2007 when the existing user interface
was replaced by a ribbon, to the dismay of many users. When the start
button disappeared in Windows 8,
every Windows user in the world lost

their accumulated muscle memory


for commanding the Windows operating system. Such missteps occur when
companies grow older and become
deaf to feedback and external input.
Companies that ignore feedback become nocontrol systems that produce
output based only on their internal
echo chambers (Figure 3).
Internal processes and the desire to
control risk start to overrule real innovation. Investors pressure to optimize
for quarterly results and the bottom line
further encourage deafness. Last but
not least, the workforce ossifies because
of a recursive feedback system that over
time ejects employees that are open to
external stimuli in favor of yesmen who
worship legacy and process.
A Responsive Enterprise
Is a Software Company
In the next decade every business will
be digitized and effectively become a
software company. Leveraging software, and, in general, computational
thinking, to make a business responsive to change using a closedloop
feedback system will be crucial to

surviving in this new world where


business = data + algorithms. Some
examples of responsive companies
follow here.
Unlike traditional cab companies,
Uber does not own its fleet. Its value
is in the real-time data and algorithms
Uber uses to transform this data into
decisions. In a few years, Uber will
likely automate away all humans in
the equation by replacing drivers with
selfdriving cars, which themselves are
possible only because of advances in
software technology.
Netflix does not operate its own data
centers but runs its whole operation
on public cloud infrastructure. Simply
put, cloud computing virtualizes hardware into software.5 Instead of dragging in a physical computer or storage
device, cloud computing achieves the
same effect with a few lines of software
code that in the blink of an eye allows
companies to add compute and storage capacity, or to release surplus.
Software promotes agility by dramatically speeding up the feedback
loop between output and input. In the
past, companies could measure their

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

39

practice
Table 1. Five fastest-growing companies.

Facebook

118.80%

2004

Apple

55.90%

1976

Intel

48.50%

1968

Gilead Sciences

47.60%

1987

Microsoft

41.80%

1975

Table 2. Bottom five companies that lost market capitalization.

GlaxoSmithKline

6.30%

1900 (mergers)

Citigroup

5.00%

1812

Philip Morris

4.90%

1900

Sanofi

4.30%

1973 (mergers)

WalMart Stores

2.60%

1962

performance every quarter, making it


difficult to adjust quickly to changes
in the environment. In contrast, Facebook ships new versions of its product
multiple times a day, with enhancements and fixes determined by realtime feedback from actual use of the
website. Companies such as Amazon
and Booking.com continuously perform A/B testing or multiarmed bandit experiments on users to optimize
purchase rates on their sites.
Amazon even makes its A/B testing technology available to third-party
developers for free (https://developer.
amazon.com/public/apis/manage/ab
-testing). The same holds for other
companies such as Facebook and Netflix, which make most of their internal
software available as open source.
Continuous delivery and A/B or
multiarmed bandit testing not only
require new products to be rolled out
quickly, but also mean that wrong decisions can be rolled back quickly. Accepting that decisions can be wrong,
and acknowledging them, requires
courage that traditional riskaverse enterprises tend to eliminate by introducing process.
Responsive enterprises accept that
failures will always happen and guard
themselves from cascading failures by
purposefully causing failures. Just the
thought of creating a deliberate failure
to make a system more robust against
failure immediately sends many traditional middle managers over the edge.
At Netflix, however, it is common prac40

COM MUNICATIO NS O F TH E ACM

tice to let an army of monkeys loose


in the data center to pull out virtual
cables and wreak havoc. Many agile
development methods propose writing tests before writing code. It is impossible, however, to faithfully model
the complexities of the environment
in which deployed code runs in the test
environment. Instead, software application failures should be treated as
any other failures, deploying code in
production immediately and rolling it
back when problems occur.
Elementary psychology teaches us
that in order for humans to learn (that
is, improve), feedback about their actions must be immediate. Smokers
keep smoking because lighting up
gives them immediate satisfaction,
but the feedback effect of lung disease comes years later. Developers
are humans, too, and, hence, can be
stimulated to write better software by
providing them immediate and physical feedback about the quality of their
code. Companies can implement this
feedback loop by making developers
wear pagers that wake them up in the
middle of the night in case problems
arise and by making them responsible
for the whole stack (also known as
the DevOps model). Decoupling the
development process from the operations side removes a valuable (recursive) feedback loop in the system and
thus reduces the responsiveness of the
system as a whole.
Another way of viewing a
closedloop system is as a (nondeter-

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

ministic) Mealy machine.7 This is a


finite-state machine where the next
output value and the next state are determined by the current state and the
current input (Figure 4). The Mealy
machine view emphasizes an organizations corporate memory and posits that decisions on the current input
may be influenced by a state that has
been accumulated over many iterations using past inputs and outputs.
At a meta level, however, the environment in which the enterprise operates
will also change over time; hence, the
corporate memory needs to be reset
occasionally since it is not tracking
relevant inputs anymore.
As a concrete example, take Microsoft, which since 1975 has accumulated an impressive corporate memory
of shipping boxed products. While the
world was craving boxed software, the
Microsoft machine was able to optimize the output to generate spectacular profits. The environment changed,
however, and began demanding cloud
services, and suddenly the knowledge
of optimizing for boxed software became an impediment for growth. Microsoft has had to lay off thousands of
people recently to forget the past and
change to a cloud first direction.
Every company should have a 10th
man (When nine people agree on
something, its the tenth mans responsibility to disagree no matter how
improbable the idea)6 or devils advocate who injects a certain amount
of randomness and chaos into the
process. This prevents falling into the
trap of getting stuck in a local optimum, or worse, making wrong decisions because changes in customer
preferences were ignored and nobody
dared to point out that the emperor
had no clothes.
The People Side of
the Responsive Enterprise
From a peoples perspective, running
a company powered by software is totally different from running a traditional enterprise. Once a company realizes the road to success is to accept
that a responsive enterprise is powered by software, it must apply openloop feedback control to make the
engine run smooth, and, moreover,
it must deeply embrace developers as
the engine for growth.

practice
Software developers are nothing like
traditional suitwearing corporate employees, and it is this aspect that is often the most difficult for pointyhaired
bosses to understand. Perhaps the difference is most succinctly expressed
here: You cannot race sheep, and you
cannot herd racehorses;8 and Domesticate developers like beekeepers
domesticate bees.1
The Seven Aspects of our Culture, as described in a Netflix slide
presentation (Values are what we Value; High Performance; Freedom and
Responsibility; Context, not Control;
Highly Aligned, Loosely Coupled; Pay
Top of Market; and Promotions and
Development) provides a crisp formulation of people-management values for a softwarecentric enterprise.4
Here is our take on four of Netflixs
seven core values:
Context, not control. Anyone who
has performed improvisational jazz
or theater knows from experience
that creativity can only flourish under
strong constraints. Letting developers wander around without clear goals
in the vastness of the software universe of all computable functions is
one of the major factors why projects
fail, not because of lack of process or
planning. If we give developers strict
guidelines and orders about what to
optimize for, and provide them immediate and real-time feedback about
the consequences of their decisions
on those goals, the competitive nature
of geeks will take over and the system
will quickly iterate toward an optimal
solution. The only goal of middle management is to provide and enforce this
context, and keep developers happy
and productive within these welldefined bounds. We do not care about
developers opinions on the long-term
strategy of the enterprise.
Pay top of market. In professional
sports it is normal to spend many millions of dollars to attract and pay top
players to assemble a team that can
compete in the top of the division. To
attract and retain the best developers
(and to entice young people to pursue
a career in hightech instead of becoming lawyers or stockbrokers), they need
to be compensated well and given a big
piece of the pie, based on the value they
deliver and their limited shelf life, not
on the number of hours they clock.

Figure 1. Open-loop system.

input

control

system

output

control

system

output

system

output

Figure 2. Closed-loop system.

input

feedback

Figure 3. No-control system.

control

Highly aligned, loosely coupled. Replacing the word war with software in
the following excerpt from the Fleet
Marine Force Manual 1, Warfighting,
immediately brings to mind the day-today practice of software development:9
Software is a complex endeavor. It is
shaped by the human will. It is charac
terized by friction, uncertainty, fluidity,
danger and disorder. While the nature of
software is constant, it remains unpre
dictable, and is affected by a mix of phys
ical, moral and mental factors. While
software has the characteristics of both
art and science, it is primarily shaped by
human experience.
The divisional organizational structure and operation of armies has been
honed over many centuries to deal with
such situations, and, hence, there is
much to learn from the military. In particular, software development should
follow the Philosophy of Command:
In order to support the fluid and chaotic nature of the battlefield, command
must be decentralized. Subordinate
leaders must use their own initiative to
accomplish tasks which support their
seniors intent.
Freedom and responsibility. Tradition, as defined by Wikipedia, is a

Figure 4. Mealy machine.

input

output

state

belief or behavior passed down within


a group or society with symbolic meaning or special significance with origins
in the past. In a responsive enterprise,
traditions have no role. In the traditional enterprise, traditions are encoded as process. Process is what causes
organizational deafness, which leads
to the downfall of a no-feedback system. Blind adherence to process also
drives out creative people and rewards
nonproductive bean counters. Process
is necessary to produce adequate results with mediocre employees in the
fast-food industry. The contrapositive
is that in a high-tech company composed of first-rate hackers, there is no
need for process.
No company embodies the hacker
culture better than Facebook, and
CEO and founder Mark Zuckerberg

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

41

practice
explained the idea eloquently in his
letter to investors when Facebook filed
for its IPO: Hacker culture is also extremely open and meritocratic. Hackers believe that the best idea and implementation should always winnot
the person who is best at lobbying for
an idea or the person who manages the
most people.10
Transforming into
a Responsive Enterprise
Software is an unstoppable force. To
survive, enterprises must ride the wave
instead of resisting change and ending up in the killing fields along with
blacksmiths and agile coaches. Here
are some guidelines to keep in mind.
1. Embrace that software is at the
heart of everything you do. In the 19th
and 20th centuries machines and logistics were the pivots of most organizations. If you had the best machines
and supply lines in your industry, you
were the winner. In the 21st century
having the best software is the path to
business glorythat is, your software
is directly and continuously shaped
by what the market actually wants and
needs (closedloop, datadriven design
decisions driving implementation).
Software lifts physical limitations
on the speed with which services can
be created and changed. Delivery
channels such as mobile devices and
widespread Wi-Fi technology eliminate physical delivery borders that
had to be overcome in the past. The
consequence of the new reality of
a softwaredriven enterprise is that
CEOs have to deeply understand software (and the hackers who create it)
and how to incorporate it into their
business model in order to run successful organizations. It is not surprising that some of the most successful
CEOs (Mark Zuckerberg, Larry Page,
Bill Gates, and Larry Allison) have developer backgrounds.
2. Organize yourself as a fractal
closedloop real-time feedback system
at each level of the organization, with
bidirectional feedback loops between
layers. Organizations tend to hold on
to the proven business model that
made them successful in the past,
but in the new era of software-driven
enterprises, most business models of
the past are invalidated. The revolution behind the responsive enterprise
42

COMM UNICATIO NS O F THE ACM

No company
embodies
the hacker culture
better than
Facebook.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

is in the continuous feedback loop,


which, in combination with creativity,
relentless experimentation, and datadriven decision making, unleashes
the ability for enterprises to learn and
react to their environments in real
time. Organizations need to undertake a softwaredriven business model whereby static business plans are
replaced by strategic thinking about
market opportunities. These hypotheses are then translated into A/B experiments that are tested in the market on
actual customers and analyzed in real
time to check if the hypothesis was
valid or not.
While a traditional business plan
looks forward based on (untested) historical assumptions, the softwaredriven business model is based upon continuously interpreting data derived
from experiments and feedback.
3. Effective organizations are hierarchical, like it or not. For some reason
companies seem to keep ignoring the
success of the hierarchical structure
used by the military, which has evolved
from a survival of the fittest, mentality. Instead, they keep experimenting
with new organizational structures
such as functional or flat when
sticking with a divisional organization
would make more sense.
Translated into the concepts introduced here, companies should be
recursively decomposed into communicating closedloop control systems
where the context (goals) of each inner loop is set by the immediately enclosing loop, but the operation of how
those goals are realized is left to the discretion of the teams that make up the
inner loop. As each inner ring delivers
feedback to the enclosing ring, the organization as a whole becomes a single
closedloop control system. Note that
in programming, divide and conquer
is also one of the most effective ways
to solve complex problems, so it makes
a lot of sense to apply that same technique to structure an organization.
4. Developers are the engines of
growth and are responsible for the
tactical level of the operation. As a responsive enterprise is recursively decomposed, it bottoms out at squads
of about 10 developers, or in Amazon.
com speak, two pizza teams. These
hacker squads are shoveling the coal
below deck, keeping the ship running.

practice
They are the ones who actually create
the software that powers the organization. Therefore, keeping hackers happy
is the most important people aspect of
the responsive enterprise. People management becomes hacker management. Developing software has been
compared with juggling eggsthat is,
to maintain a productive flow, developers should have nothing on their minds
other than the code they are working
on. Management should provide developers with all the software and hardware they need to do their work, with
no questions asked.
Developers should be compensated
like sports stars, not only because they
are the ones who effectively create the
value of the company, but also because
the intensity of coding takes a toll on
the bodies and minds of developers.
Just like competitive athletes, they
simply burn out by the time they reach
their mid-30s.
5. Middle management only provides operational context linking
strategy with tactics. In many traditional companies management often
is synonymous with (subtle) control
control of (assumed) risk, control of behavior, control of the uncontrollable.
Instead of making things happen, middle management should allow things
to happen by setting clear boundaries
and goals, and then just let go. Managers need to change from sheepherders
to beekeepers. That means no standup
meetings, no burn-down charts, no
weekly status reports, and, especially,
no planning poker.
Not many people are fit to become
beekeepers. They have the highly responsible job of finding exactly the
right constraints under which developers are most productive. Placing
too many constraints on developers
will make them unhappy and, hence,
unproductive; too few constraints will
make them lose focus and, hence,
be unproductive. Of course, the constraints under which developers operate should align perfectly with the overall strategy of the company, and status
information must be properly fed back
up the chain, putting even more pressure on the judgment ability and improv skills of middle managers.
Understanding and appreciating
the hackers mind is impossible if you
are not a hacker yourself. Managing

hackers can be done only by people


with hacker backgrounds, just like
the best sports coaches once were top
athletes; and like successful coaches,
successful middle managers should
be compensated handily, but ejected
quickly if they prove to be ineffective at
making their team win.
6. Decision making is mostly driven by data as opposed to status and
seniority. When developers write
software, they use tools such as debuggers, profilers, and static checkers to improve the quality and performance of their code. When it comes
down to decisions around code, only
the numbers and data generated by
those tools count. The same is true
for a softwaredriven enterprise. Control information that flows down the
chain and feedback information that
flows up the chain must be backed
by real data and measurements, and
great care must be taken to avoid injecting any subjective interpretation
that pollutes the raw datauntil the
moment where human interpretation
and creativity are required. Every layer
in the organization must have a data
scientist/data wrangler (which is really just a specialized developer role)
to help mine, interpret, and visualize
data to help in decision making.
7. The senior leadership team sets
strategic (macro) long-term direction.
The responsive enterprise is a divisional organization where the strategic direction comes solely from the senior
management team. Senior managers
are responsible not only for ensuring
the feedback engine executes smoothly, but also, more importantly, for implementing a meta feedback loop that
ensures the enterprise is listening to
the correct input signals from a constantly changing external world, that
the output produced by the enterprise
is still the desired output, and, last
but not least, that the feedback they
receive remains relevant for their decision making. As a consequence, senior management is also responsible
for overall people management such
as acquiring new capabilities to react
to external changes and expelling obsolete capabilities in the organization
and flushing corporate memory.
Conclusion
Sooner than you may think, every com-

pany will be a software company. The


obvious way to run a software company
is as a meta software application, recursively structured as a layer of commuting closedloop feedback systems,
using a strictly layered architecture
modeled after the timeproven hierarchical structure of armies and applying
software-inspired profiling and debugging techniques to optimize the profitability of the enterprise. On the operational side, instead of talking about
code, companies should follow the
hacker way and focus on writing code
using continuous improvement and iteration, leveraging the best developers
they can afford.
Related articles
on queue.acm.org
All Your Database Are Belong to Us
Erik Meijer
http://queue.acm.org/detail.cfm?id=2338507
The Theft of Business Innovation
http://queue.acm.org/detail.cfm?id=1874536
The Software Industry IS the Problem
Poul-Henning Kamp
http://queue.acm.org/detail.cfm?id=2030258
References
1. Card, O.S. How software companies die. Windows
Sources: 2008; http://www.netjeff.com/humor/item.
cgi?file=DeveloperBees.
2. Denning, S. Why software is eating the world. Forbes
(April 11, 2014); http://www.forbes.com/sites/
stevedenning/2014/04/11/why-software-is-eatingthe-world/.
3. Dogs of the Dow. Largest companies by market
cap, 2014; http://www.dogsofthedow.com/largestcompanies-by-market-cap.htm.
4. Hastings, R. Netflix culture: Freedom and
responsibility, 2008; http://www.slideshare.net/
reed2001/culture-1798664.
5. Helland, P. Condos and clouds. ACM Queue 10, 11 (Nov.
2012); http://queue.acm.org/detail.cfm?id=2398392.
6. Legge, A. What World War Z can teach you about
critical thinking. Evidence Mag, 2014; http://
evidencemag.com/world-war-z/.
7. Mealy, G.H. A method to synthesizing sequential
circuits. Bell System Technical Journal 34, 5 (1955),
10451079.
8. Thomas, D. Developing expertise: Herding racehorses,
racing sheep. InfoQueue, 2008; http://www.infoq.com/
presentations/Developing-Expertise-Dave-Thomas.
9. U.S. Marine Corps. Warfighting. U.S. Government Printing
Office, 1997; http://www.marines.mil/Portals/59/
Publications/MCDP%201%20Warfighting.pdf.
10. Zuckerberg, M. Mark Zuckerbergs letter to investors:
The hacker way. Reprinted in Wired (2012); http://
www.wired.com/2012/02/zuck-letter/.
Erik Meijer (emeijer@appliedduality.com) is the founder
of Applied Duality and professor of big-data engineering
at Delft University of Technology. He is known for
his contributions to programming languages such as
Haskell, C#, Visual Basic, Hack, and Dart, as well as his
work on big-data technologies such as LINQ and the Rx
Framework.
Vikram Kapoor (v.kapoor@prowareness.nl) is the founder
of Prowareness and iSense. He was voted IT CEO of the
Year in the Netherlands by his peers in 2013.
Copyright held by owners/authors. Publication rights
licensed to ACM. $15.00.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

43

practice
DOI:10.1145/ 2677030

Article development led by


queue.acm.org

And the belief in such a device is harmful.


BY DAVID CHISNALL

No Such Thing
as a GeneralPurpose
Processor
increasing trend in computer architecture
to categorize processors and accelerators as general
purpose. Of the papers published at this years
International Symposium on Computer Architecture
(ISCA 2014), nine out of 45 explicitly referred to
general-purpose processors; one additionally referred
to general-purpose FPGAs (field-programmable gate
arrays), and another referred to general-purpose MIMD
(multiple instruction, multiple data) supercomputers,
somewhat stretching the definition to the breaking
point. This article presents the argument that there is
no such thing as a truly general-purpose processor and
that the belief in such a device is harmful.
Many of the papers presented at ISCA 2014 that did
not explicitly refer to general-purpose processors or
cores did instead refer to general-purpose programs,
THERE IS AN

44

COMM UNICATIO NS O F THE AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

typically in the context of a GPGPU (general-purpose graphics processing unit),


a term with an inherent contradiction.
A modern GPU has I/O facilities, can
run programs of arbitrary sizes (or, if
not, can store temporary results and
start a new program phase), supports a
wide range of arithmetic, has complex
flow control, and so on. Implementing
Conways Game of Life on a GPU is a
fairly common exercise for students,
so it is clear the underlying substrate is
Turing complete.
Here is one definition of a generalpurpose processor: if it can run any algorithm, then it is general purpose. This is
not a particularly interesting definition,
because it ignores the performance aspect that has been the driving goal for
most processor development.
It is therefore not enough for a processor to be Turing complete in order to
be classified as general purpose; it must
be able to run all programs efficiently.
The existence of accelerators (including GPUs) indicates that all attempts
thus far at building a general-purpose
processor have failed. If they had succeeded, then they would be efficient
at running the algorithms delegated
to accelerators, and there would be no
market for accelerators.
With this in mind, lets explore what
people really mean when they refer to a
general-purpose processor: the specific category of workloads these devices
are optimized for and what those optimizations are.
The Operating System
A common requirement for a generalpurpose processor is it can run a general-purpose operating systemmeaning an operating system that is either
Unix or (like MS Windows) has a similar
set of underlying abstractions as Unix.
For example, most modern processors
lack the ability to cleanly express the
memory model found in Multics, with
fine-grained sharing and transparent
virtualized access to memory-mapped
I/O devices.
The ability to run an operating system is fundamental to the accepted

SNOWF L A KE IM AGES BY SERGEY KICH IGIN, CO LL AGE BY A NDRIJ BORYS ASSOCIATES

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

45

practice
definition. If you remove the ability to run an operating system from
a processor that is considered general purpose, then the result is usually described as a microcontroller.
Some devices that are now regarded
as microcontrollers were considered
general-purpose CPUs before the
ability to run a multitasking, protected-mode operating system became a
core requirement.
The important requirements for
running an operating system (again,
with the caveat that it must be efficient and not simply running an
emulator) are similar to those enumerated by Gerald Popek and Robert
Goldberg for virtualization.6 This is
not surprising, as an operating-system process is effectively a virtual
machine, albeit with a very high-level
set of virtual devices (file systems
rather than disks, sockets rather
than Ethernet controllers).
To meet these requirements, a processor needs to distinguish between
privileged and unprivileged instructions and the ability to trap into privileged mode when a privileged instruction is executed in unprivileged mode.
Additionally, it needs to implement
protected memory so that unprivileged
programs can be isolated from each
other. This is somewhat weaker than
Popek and Goldbergs requirement
that memory accesses be virtualized,
because an operating system does not
necessarily have to give every process
the illusion that it has an isolated linear address space.
Traditionally, all I/O-related instructions were privileged. One of the advantages of memory-mapped I/O regions,
as opposed to separate namespaces for
I/O ports, is that it makes it possible to
delegate direct access to hardware to
unprivileged programs. This is increasingly common with network interfaces
and GPUs but requires that the hardware provide some virtualization support (for example, isolated command
queues that are not able to request direct memory access to or from memory
controlled by another program).
In MIPS, the privileged instructions
are modeled as being implemented
by CP0 (control coprocessor). This
dates back to the pre-microcomputer
model where the CPU consisted of a
small number of chips and the MMU
46

COMMUNICATIO NS O F TH E AC M

(memory management unit) was usually placed on a different chip (or even
collection of chips).
In a modern multicore system, it
is fairly common to allocate some
cores almost purely to user-space applications, with all interrupts routed
away from them so they can run until
a scheduler on another core determines they should stop. It is therefore
not clear whether every processor in a
multicore system needs to be able to
run all of the kernel code. This model
was explored in the Cell microprocessor,3 where each synergistic processing element (SPE) was able to run a
small stub that would message the
PowerPC core when it needed operating-system functionality. This design
is relatively common in supercomputers, where each node contains a slow
commodity processor to run an operating system and handle I/O, as well as
a much faster processor optimized for
high-performance computing (HPC)
tasks, over which the application has
exclusive control.
The Barrelfish research operating
system1 proposes that, as the transition
is made from multicore to many-core
architectures, time-division multiplexing makes less sense for virtualization than space-division multiplexing.
Rather than one core running multiple
applications, one application will have
exclusive use of one or more cores for
as long as it runs. If this transition
takes place, it will change the requirements considerably.
Branching
The heuristic used in the RISC I processor,5 discovered from examining
the code produced by the Portable C
Compiler on the Unix code base, was
that general-purpose code contains
approximately one branch instruction for every seven instructions. This
observation indicates why branch predictors are such an important feature
in most modern superscalar-pipelined CPUs. The Pentium 4, for example, could have around 140 instructions in-flight at a time and thus (if
this observation is correct) needed to
predict correctly 20 branches into the
future to keep the pipeline full. With a
90% branch predictor hit rate, it would
have only a 12% probability of correctly predicting the next 20 branches.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Fortunately for the Pentium 4,


not all branches are of equal difficulty and the most common branch
in CPU-dependent code is the backward branch at the end of a loop. The
Pentium 4 included a static heuristic
that this branch is always taken on
first use and a complex loop predictor would determine which iteration
would be the last one.
This observation is still largely true
for C code. It is also now largely true
for other languages but with several
caveats. In particular, while it is true
for nave compilation of C, it is definitely not true for nave compilation
of dynamic languages such as Smalltalk or JavaScript.
Consider the simple expression
a+b. In C, you statically know the types
of both a and b. The operation is either
an integer or floating-point addition.
Now consider the same line of code in
C++. If a is a primitive type, then this
is a simple arithmetic operation (although there may be some complex
code including function calls to coerce
b to the same type). If a is a class that
has a virtual overload for the addition
operator, then it is an indirect branch
via a virtual table (vtable) lookup. The
compiler will insert a load of the function pointer at a fixed offset in the
vtable, followed by an indirect jump to
the loaded address.
In JavaScript, this is even more
complex. The exact semantics for
addition in JavaScript are quite convoluted; lets simplify by treating
all non-numeric addition as equivalent. In the numeric case, all values
in JavaScript are double-precision
floating-point values. Most processors, however, are much faster when
performing integer arithmetic than
floating point, so, ideally, all arithmetic that fits into a 53-bit integer (the
mantissa size for a 64-bit IEEE-compliant double) would be performed as
integer operations. Unfortunately, to
do this you must first check whether
it is an integer or a floating-point value (which adds another branch and
typically costs more than the savings
obtained from doing the integer operation). You must then check whether it is something else (an object) before finally doing the arithmetic.
This means that in navely compiled JavaScript a simple addition can

practice
involve two branches. Optimizing this
has been the focus of a huge amount of
research over the past 40 years (most
of the techniques apply to Smalltalk
and similar languages, predating Java
Script). These techniques involve
dynamically recompiling the code
based on type information gained at
runtime; this ensures the case involving the most common types contains
no branches.
It is worth noting that SPARC architecture has a tagged integer type and
add and subtract instructions specifically designed for dynamic languages.7
A SPARC-tagged integer is 30 bits, with
the lowest two bits in a 32-bit word
reserved for type information. The
tagged operations set a condition code
(or trap) if either of the operands has a
nonzero tag or if the result overflows.
These instructions are not widely
used for several reasons. They use the
opposite definitions of tag values from
most 32-bit implementations (it is
simpler to use a 0 tag for pointers, as
it allows the pointer value to be used
unmodified). For JavaScript, it is also
common to use NaN (not a number)
representations to differentiate object
pointers from numeric values. This is
possible because most 64-bit architectures have a memory holea range in
the middle of the virtual address space
that cannot be mappedand this
conveniently lines up with the pointer
interpretation of certain NaN values.
This allows generated code to assume
that values are floating point and either
branch or trap for NaN values.
In spite of the popularity of Java
Script as a general-purpose programming language, most general-purpose processors still require the compiler to perform complex convolutions
to generate moderately efficient code.
Importantly, all of the techniques
that do generate good code from Java
Script require a virtual machine that
performs dynamic recompilation. If
the most efficient way of running general-purpose code on a processor is to
implement an emulator for a different
(imaginary) architecture, then it is difficult to argue the underlying substrate
is truly general purpose.
Locality of Reference
One feature shared by most modern
CPUs is their large caches. In the case

It is not enough for


a processor to be
Turing complete
in order to be
classified as
general purpose;
it must be able
to run all programs
efficiently.

of Itanium and POWER, this trend


has gone beyond the realm of propriety, but even commodity x86 chips
now have more cache than a 386 or
486 had RAM.
Cache, unlike scratchpad memories, is (as its name implies) hidden
from the software and exists to speed
up access to main memory. This ability to stay hidden is possible only if
the software has a predictable access
pattern. The strategy most commonly
used for CPU caches optimizes for lo
cality of reference. The caches are split
into lines of typically 64 or 128 bytes.
Loading a single byte from main memory will fill an entire cache line, making
accesses to adjacent memory cheap.
Often, caches will fill more than one
adjacent line on misses, further optimizing for this case.
This design is a result of the work
ing-set hypothesis, which proposes
that each phase of computation accesses a subset of the total memory
available to a program, and this set
changes relatively slowly.2 GPUs, in
contrast, are optimized for a very different set of algorithms. The memory
controller on an Nvidia Tesla GPU, for
example, has a small number of fixed
access patterns (including some recursive Z-shapes, commonly used for
storing volumetric data); it fetches
data in those patterns within a texture
and streams it to the processing elements. Modern Intel CPUs can also
identify some regular access patterns
and efficiently stream memory but
with a lower throughput.
Jae Min Kim et al. showed that some
programs run faster on the slow cores
in ARMs big.LITTLE architecture.4
Their explanation was that the slow
Cortex A7 cores have a single-cycle access to their level-1 caches, whereas the
fast Cortex A15 cores have a four-cycle
penalty. This means that, if the working-set hypothesis holdsthe working
set fits into the L1 cache, and the performance is dominated by memory accessthen the A7 will be able to saturate its pipeline, whereas the A15 will
spend most of its time waiting for data.
This highlights the fact that, even
within commodity microprocessors
from the same manufacturer and generation, the different cache topologies
can bias performance in favor of a specific category of algorithm.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

47

practice
Models of Parallelism
Parallelism in software comes in a
variety of forms and granularity. The
most important form for most CPUs
is ILP (instruction-level parallelism).
Superscalar architectures are specifically designed to take advantage of
ILP. They translate the architectural
instruction encodings into something more akin to a static single assignment form (ironically, the compiler spends a lot of effort translating
from such a form into a finite-register
encoding) so they can identify independent instructions and dispatch
them in parallel.

Although the theoretical limit for


ILP can be very high, as much as 150 independent instructions,8 the amount
that it is practical to extract is significantly lower. VLIW (very long instruction word) processors simplify their
logic by making it the compilers job to
identify ILP and bundle instructions.
The problem with the VLIW approach is that ILP is a dynamic property. Recall that the RISC I heuristic was
that branches occur, on average, every
seven instructions. This means the
compiler can, at most, provide seven-way ILP, because it cannot identify ILP that spans basic blocks: if the
compiler statically knew the target of
a branch, then it would most likely
not insert a branch.
VLIW processors have been successful as DSPs (digital signal processors) and GPUs but not in the kind
of code for which general-purpose
processors are optimized, in spite
of several attempts by Intel (i860,
Itanium). This means that statically
predictable ILP is relatively low in the
48

COMMUNICATIO NS O F TH E AC M

code these processors are expected


to run. Superscalar processors do not
have the same limitation because, in
conjunction with a branch predictor,
they can extract ILP from dynamic
flow control spanning basic blocks
and even across functions.
It is worth noting that, in spite of
occupying four times the die area
and four times the power consumption, clock-for-clock the ARM Cortex
A15 (three-issue, superscalar, out-oforder) achieves only 75%100% more
performance than the (two-issue, inorder) A7, in spite of being able (theoretically) to exploit a lot more ILP.
The other implicit assumption
with regard to parallelism in most
CPUs is that communication among
parallel threads of execution is both
rare and implicit. The latter attribute
comes from the C shared-everything
model of concurrency, where the only
way for threads to communicate is by
modifying some shared state. A large
amount of logic is required in cache
coherency to make this efficient, yet
it is relevant only for shared-memory
parallelism.
Implementing message passing
(as embodied both by early languages
such as Occam and Actor Smalltalk
and by newer ones such as Erlang and
Go) on such processors typically involves algorithms that bounce cacheline ownership between cores and involve large amounts of bus traffic.
Conclusion
The general-purpose processors of
today are highly specialized and designed for running applications compiled from low-level C-like languages.
They are virtualized using time-division multiplexing, contain mostly predictable branches roughly every seven
instructions, and exhibit a high degree
of locality of reference and a low degree
of fine-grained parallelism. Although
this describes a lot of programs, it is by
no means exhaustive.
Because processors optimized for
these cases have been the cheapest
processing elements that consumers
can buy, many algorithms have been
coerced into exhibiting some of these
properties. With the appearance of
cheap programmable GPUs, this
has started to change, and naturally
data-parallel algorithms are increas-

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

ingly run on GPUs. Now that GPUs are


cheaper per FLOPS (floating-point operations per second) than CPUs, the
trend is increasingly toward coercing
algorithms that are not naturally data
parallel to run on GPUs.
The problem of dark silicon (the
portion of a chip that must be left
unpowered) means it is going to be
increasingly viable to have lots of different cores on the same die, as long
as most of them are not constantly
powered. Efficient designs in such a
world will require admitting there is
no one-size-fits-all processor design
and there is a large spectrum, with different trades at different points.
Related articles
on queue.acm.org
A New Objective-C Runtime:
from Research to Production
David Chisnall
http://queue.acm.org/detail.cfm?id=2331170
Getting Gigascale Chips: Challenges and
Opportunities in Continuing Moores Law
Shekhar Borkar
http://queue.acm.org/detail.cfm?id=957757
Extreme Software Scaling
Richard McDougall
http://queue.acm.org/detail.cfm?id=1095419
References
1. Baumann, A., Barham, P., Dagand, P.-E., Harris, T.,
Isaacs, R., Peter, S., Roscoe, T., Schpbach, A. and
Singhania, A. The multikernel: a new OS architecture
for scalable multicore systems. In Proceedings of the
ACM SIGOPS 22nd Symposium on Operating Systems
Principles, (2009), 2944.
2. Denning, P.J. The working-set model for program
behavior. Commun. ACM 11, 5 (May 1968), 323333.
3. Gschwind, M., Hofstee, H.P., Flachs, B., Hopkins, M.,
Watanabe, Y. and Yamazaki, T. Synergistic processing
in Cells multicore architecture. IEEE Micro 26, 2
(2006), 1024.
4. Kim, J.M., Seo, S.K., Chung, S.W. 2014. Looking into
heterogeneity: when simple is faster. In Proceedings
of the 2nd International Workshop on Parallelism in
Mobile Platforms, (2014).
5. Patterson, D.A. and Sequin, C.H. RISC I: a reduced
instruction set VLSI computer. In Proceedings of the
8th Annual Symposium on Computer Architecture,
(1981), 443457.
6. Popek, G.J. and Goldberg, R.P. 1974. Formal
requirements for virtualizable third-generation
architectures. Commun. ACM 17, 7 (July 1974),
412421.
7. SPARC International Inc. 1992. SPARC Architecture
Manual: Version 8. Prentice-Hall, Upper Saddle River, NJ.
8. Wall, D.W. 1993. Limits of instruction-level parallelism.
Technical report, Digital Equipment Corporation
Western Research Laboratory, 1993.
David Chisnall is a researcher at the University of
Cambridge, where he works on programming-language
design and implementation. He spent several years
consulting, during which time he also wrote books on Xen
and the Objective-C and Go programming languages.

Copyright held by owner/author. Publication rights


licensed to ACM. $15.00.

DOI:10.1145/ 2 6 770 3 4

Article development led by


queue.acm.org

What happened to the promise of


rigorous, disciplined, professional
practices for software development?
BY IVAR JACOBSON AND ED SEIDEWITZ

A New
Software
Engineering
software engineering? What
happened to the promise of rigorous, disciplined,
professional practices for software development, like
those observed in other engineering disciplines?
What has been adopted under the rubric of
software engineering is a set of practices largely
WH AT H A P P E N E D TO

adapted from other engineering disciplines: project management, design


and blueprinting, process control,
and so forth. The basic analogy was
to treat software as a manufactured
product, with all the real engineering going on upstream of thatin requirements analysis, design and modeling, among others.
Doing the job this way in other engineering disciplines makes sense because the up-front work is based on a
strong foundational understanding,
so the results can be trusted. Software
engineering has had no such basis,
so big up-front design often just
has not paid off. Indeed, the ethos of
software engineering has tended to
devalue coders (if not explicitly, then
implicitly through controlling practices). Coders, though, are the ones

who actually have to make the software workwhich they do, regardless
of what the design blueprints say
should be done.
Not surprisingly, this has led to a
lot of dissatisfaction.
Todays software craftsmanship
movement is a direct reaction to the
engineering approach. Focusing on
the craft of software development, this
movement questions whether it even
makes sense to engineer software. Is
this the more sensible view?
Since it is the code that has to be
made to work in the end anyway, it
does seem sensible to focus on crafting quality code from the beginning.
Coding, as a craft discipline, can then
build on the experience of software
masters, leading the community to
build better and better code. In addi-

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

49

practice
tion, many of the technical practices
of agile development have made it
possible to create high-quality software systems of significant size using
a craft approachnegating a major
impetus for all the up-front activities
of software engineering in the first
place.
In the end, however, a craft discipline can take you only so far. From ancient times through the Middle Ages,
skilled artisans and craftsmen created
many marvelous structures, from the
pyramids to gothic cathedrals. Unfortunately, these structures were incredibly expensive and time consuming to
buildand they sometimes collapsed
in disastrous ways for reasons that
were often not well understood.
Modern structures such as skyscrapers became possible only with
the development of a true engineering
approach. Modern construction engineering has a firm foundation in material science and the theory of structures, and construction engineers use
this theoretical foundation as the basis of a careful, disciplined approach
to designing the structures they are to
build.
Of course, such structures still
sometimes fail. When they do, however, a thorough analysis is again done
to determine whether the failure was
caused by malfeasance or a shortcoming in the underlying theory used in
the original design. Then, in the latter
case, new understanding can be incorporated into the foundational practice
and future theory.
Construction engineering serves as
an example of how a true engineering
discipline combines craftsmanship
with an applied theoretical foundation. The understanding captured in
such an accepted foundation is used
to educate entrants into the discipline. It then provides them with a basis for methodically analyzing and addressing engineering problems, even
when those problems are outside the
experience of the engineers.
From this point of view, todays
software engineering is not really an
engineering discipline at all.
What is needed instead is a new
software engineering built on the
experience of software craftsmen,
capturing their understanding in a
foundation that can then be used to
50

COMMUNICATIO NS O F TH E AC M

Todays software
craftsmanship
movement is
a direct reaction
to the engineering
approach.
Focusing on
the craft of software
development,
this movement
questions
whether it even
makes sense to
engineer software.
Is this the more
sensible view?

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

educate and support a new generation


of practitioners. Because craftsmanship is really all about the practitioner,
and the whole point of an engineering
theory is to support practitioners, this
is essentially what was missing from
previous incarnations of software engineering.
How does the software community
go about this task of refounding
software engineering?
The SEMAT (Software Engineering Method and Theory) initiative is
an international effort dedicated to
answering this question (http://www.
semat.org). As the name indicates, SEMAT is focusing both on supporting
the craft (methods) and building foundational understanding (theory).
This is still a work in progress, but
the essence of a new software engineering is becoming clear. The remainder of this article explores what
this essence is and what its implications are for the future of the discipline.
Engineering Is Craft
Supported by Theory
A method (equivalently, methodology
or process) is a description of a way of
working to carry out an endeavor, such
as developing software. Ultimately, all
methods are derived from experience
with what does and does not work in
carrying out the subject endeavor.
This experience is distilled, first into
rules of thumb and then into guidelines and, when there is consensus,
eventually into standards.
In a craft discipline, masters, who
have the long experience necessary,
largely develop methods. In older
times, the methods of a master were
closely guarded and passed down
only to trusted apprentices. In todays
world, however, various approaches
based on the work of master craftsmen are often widely published and
promoted.
As a craft develops into an engineering discipline, it is important to
recognize commonality between the
methods of various masters, based on
the underlying shared experience of
the endeavor being carried out. This
common understanding is then captured in a theory that can be used as a
basis for all the different methods to
be applied to the endeavor.

practice
of describing, understanding, and
combining various software-development techniques, instead of setting
them up in competition with each
other.
To see how this might be accomplished, lets take a closer look at
methods and the teams of practitioners that really use them.

agility in software development complements the recognition of software


craftsmanship. As the name suggests,
agile software development is about
promoting flexibility and adaptability
in the face of inevitably changing requirements. This is done by producing
software in small increments, obtaining feedback in rapid iterations, and
continually adjusting as necessary.
Agile software-development teams
take charge of their own way of working. Such a team applies the methods

Agility Is for Methods,


Not Just Software
The current movement to promote

st

em
<d

Requirements

oa

dd

res

Software
System

< fulfills

ges

han

ate

upd

c
and

< produces

set up to
address >

elp

and

Scopes and
constrains >

Endeavor

<h

Stakeholders

>

< performs and plans

Work

<g

Team

es

Way of
Working

<a

lie

pp

uid

support >

Solution

< provide

Opportunity

use and
consume >

Customer

Figure 1. The kernel alphas.

focuses >

In this sense, theory is not the bad


word it is sometimes treated as in our
culture (Oh, thats just a theory).
As noted earlier, having a theoretical foundation is, in fact, the key that
allows for disciplined engineering
analysis. This is true of material science for construction engineering,
electromagnetic theory for electrical
engineering, aerodynamics for aeronautical engineering, and so forth.
Of course, the interplay between
the historical development of an engineering discipline and its associated
theory is generally more complicated
than this simple explanation implies.
Engineering experience is distilled
into theory, which then promotes better engineering, and back again. Nevertheless, the important point to realize here is this: traditional software
engineering did not have such an underlying theory.
One might suggest computer science provides the underlying theory
for software engineeringand this
was, perhaps, the original expectation
when software engineering was first
conceived. In reality, however, computer science has remained a largely
academic discipline, focused on the
science of computing in general but
mostly separated from the creation of
software-engineering methods in industry. While formal methods from
computer science provide the promise of doing some useful theoretical
analysis of software, practitioners
have largely shunned such methods
(except in a few specialized areas such
as methods for precise numerical
computation).
As a result, there have often been
cycles of dueling methodologies for
software engineering, without a true
foundational theory to unite them. In
the end, many of these methods did
not even address the true needs of the
skilled craft practitioners of the industry.
So, how to proceed?
The creation of a complete, new
theory of software engineering will
take some time. Rather than starting
with an academic approach, we can
begin, as already mentioned, by capturing the commonality among the
methods that have proven successful
in the craft of software development.
This, in turn, requires a common way

Figure 2. Tracking progress with alphas.

Opportunity

Way of Working

Stakeholders

Team

Requirements

Work

Software System

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

51

practice
Figure 3. Alphas made tangible with cards.

va

Addressed

Involved

Identified

A stakeholder wishes to make


an investment in better understanding
potential value
Other stakeholders who share
opportunity identified

5/6

Work going well, risks being


managed
Unplanned work and re-work
under control
Work items completed within estimates
Measures tracked

Team working efficiently


and effectively
Adapts to changing context
Produce high quality output
Minimal backtracking and re-work
Waste continually eliminated

4/6

52

COMM UNICATIO NS O F THE AC M

Way of
Working

Performing

Under Control

it feels it needs for the project at hand


as they are needed, adapting the development process throughout a project.
In effect, an agile team needs to evolve
and improve its methods in as agile a
fashion as it develops its software.
A lack of agility in methods is a central failure of traditional software engineering.
Software is, by its very nature, malleable and (physically) easy to change.
A complicated software system, however, can exhibit a kind of intellectual
rigidity in which it is difficult to make
changes correctly, with each change
introducing as many or more errors
as it resolves. In the face of this, the
response of traditional software engineering was to adopt process-control
and project-management techniques
such as those used to handle similar
problems with complicated hardware
systems.
From an agile viewpoint, however,

2/6

Team

Work

Key architecture characteristics


demonstrated
Relevant stakeholders agree
architecture is appropriate
Critical interface and system
configurations exercised

Stakeholders agree the system


is worth making operational

3/6

1/6

Demonstrable

Enough requirements are implemented


for the system to be acceptable

Stakeholder representatives carry


out responsibilities
Stakeholder representatives
provide feedback and take part
in decisions in a timely way
Stakeholder representatives
promptly communicate to
stakeholder group

Opportunity identified that could be


addressed by a software-based solution

Software
System

Requirements

Stakeholders

Opportunity

In Use
Some members of the team
are using the way of working
Use of practices and tools
regularly inspected
Practices and tools being adapted
and supported by team
Procedures in place to handle feedback

4/5

the application of hardware-engineering techniques was a mistake. Agile


techniques, instead, take advantage
of the changeable nature of software,
using quick feedback cycles allowed
by continuous integration and integrated testing to manage complexity, rather than process control. As a
result, agile development focuses on
supporting the practitioner in building quality software, rather than requiring the practitioner to support the
process.
So, how do you introduce agility
into software-engineering methods?
By looking at the basic things that
practitioners actually dotheir practices.
Methods Are Made
from Practices
A method may appear monolithic, but
any method may be analyzed as being
composed of a number of practices. A

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

3/6

practice is a repeatable approach to


doing something with a specific purpose in mind. Practices are the things
that practitioners actually do.
For example, the agile method of
Extreme Programming is described
as having 12 practices, including pair
programming, test-driven development, and continuous integration.
The agile framework Scrum, on the
other hand, introduces practices
such as maintaining a backlog, daily
scrums, and sprints. Scrum is not really a complete method but a composite
practice built from a number of other
practices designed to work together.
Scrum, however, can be used as a
process framework combined with
practices from, say, Extreme Programming, to form the method used by an
agile team.
That exemplifies the power of explicitly considering how methods are
made up of practices. Teams can pull

practice
together the practices that best fit the
development task at hand and the
skills of the team members involved.
Further, when necessary, a team can
evolve its method in not only small
steps, but also more radical and bigger
steps such as replacing an old practice
with a better practice (without having
to change any other practices).
Note how the focus is on teams
and the practitioners in teams, rather
than method engineers, who create
methods for other people to carry out.
Creating their own way of working is a
new responsibility for a lot of teams,
however, and it is also necessary to
support a teams ability to do this
across projects. It is also useful, therefore, to provide for groups interested
in creating and extending practices,
outside of any specific project, so they
can then be used as appropriate by
project teams.
This can be seen as a separation
of concerns: practices can be created and grown within an organization, or even by cross-organization
industry groups (such as is effectively
the case with Extreme Programming
and Scrum); practitioners on project
teams can then adopt, adapt, and apply these practices as appropriate.
What assurance do project teams
have that disparately created practices
can actually be smoothly combined
to produce effective methods? This
is where a new software-engineering
foundation is needed, independent
of practices and methods but able to
provide a common underpinning for
them.
The Kernel Is the Foundation
for Practices and Methods
The first tangible result of the SEMAT
initiative is what is known as the kernel for software engineering. This kernel can be thought of as the minimal
set of things that are universal to all
software-development endeavors. The
kernel consists of three parts:
A means for measuring the progress and health of an endeavor.
A categorization of the activities
necessary to advance the progress of
an endeavor.
A set of competencies necessary to
carry out such activities.
Of particular importance is having
a common means for understanding

how an endeavor is progressing. The


SEMAT kernel defines seven dimensions for measuring this progress,
known as alphas. (The term alpha was
originally an acronym for abstract-level progress health attribute but is now
simply used as the word for a progress
and health dimension as defined in
the kernel. Many other existing terms
were considered, but all had connotations that clashed with the essentially
new concept being introduced for the
kernel. In the end, a new term was adopted without any of the old baggage.)
The seven dimensions are: opportunity, stakeholders, requirements, software system, work, team, and way of
working. These alphas relate to each
other as shown in Figure 1.
Each alpha has a specific set of
states that codify points along the
dimension of progress represented
by the alpha. Each of the states has a
checklist to help practitioners monitor the current state of their endeavor
along a certain alpha and to understand the state they need to move toward next. The idea is to provide an intuitive tool for practitioners to reason
about the progress and health of their
endeavors in a common, method-independent way.
One way to visualize the seven-dimensional space of alphas is using the
spider chart1 shown in Figure 2. In this
chart, the gray area represents how far
an endeavor has progressed, while the
white area shows what still needs to
be completed before the endeavor is
done. A quick look at such a diagram
provides a good idea of where a project is at any point in time.
The alphas can be made even more
tangible by putting each of the alpha
states on a card, along with the state
checklist in an abbreviated form (see
Figure 3). The deck of all such cards
can then fit easily into a persons pocket. Although more detailed guidelines
are available, these cards contain key
reminders that can be used by development teams in their daily work,
much like an engineers handbook in
other disciplines.
A more complete discussion of the
kernel and its application is available
in previous work.2,3 The kernel itself is
formally defined as part of the Essence
specification that has been standardized through the Object Management

Group.6 In addition to the full kernel,


the Essence standard also defines
a language that can be used both to
represent the kernel and to describe
practices and methods in terms of
the kernel. Importantly, this language
is intended to be usable by practitioners, not just method engineers; for
basic uses, it can be learned in just a
couple of hours (the alpha state cards
are an example of this).
Of course, this ability to use the
kernel to describe practices is exactly
what is needed as a foundation for
true software-engineering methods.
Practices Built on the Kernel
Enable Agile Methods
A practice can be expressed in terms
of the kernel by:
Identifying the areas in which it
advances the endeavor.
Describing the activities used to
achieve this advancement and the
work products produced.
Describing the specific competencies needed to carry out these activities.
A practice can also extend the kernel with additional states, checklists,
or even new alphas.
The critical point is that the kernel
provides a common framework for
describing all practices and allowing
them to be combined into methods.
Bringing a set of practices into this
common system allows gaps and overlaps to be more easily identified. The
gaps can then be filled with additional
practices and the overlaps resolved by
connecting the overlapping practices
together appropriately.
For example, consider two practices: one about using a backlog to
manage the work to be carried out by
a team (advancing the work alpha);
the other about defining requirements using user stories (advancing
the requirements alpha). The backlog
practice does not prescribe what the
items on the backlog must be, while
the user-story practice does not prescribe how the team should manage
the implementation of those stories.
The two practices are thus complementary and can be used together
but, when so combined, they overlap.
The two practices can be connected in
a smooth and intuitive way within an
overall method by identifying backlog

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

53

practice
items from the one with user stories
from the other, so that user stories become the items managed on the backlog.
Note, in particular, how the common framework of the kernel provides
a predictive capability. A construction
engineer can use material science and
the theory of structures to understand
at an early stage whether a proposed
building is likely to stand or fall. Similarly, using the kernel, a software developer can understand whether a
proposed method is well constructed,
and, if there are gaps or overlaps in its
practices, how to resolve those.
Further, through the separation
of concerns discussed earlier, an organization or community can build
up a library of practices and even basic methods that a new project team
may draw on to form its initial way of
working. Each team can then continue to agilely adapt and evolve its own
methods within the common Essence
framework.4
Ultimately, the goal will be, as an
industry, to provide for the standardization of particularly useful and successful practices, while enhancing,
not limiting, the agility of teams in
applying and adapting those practices, as well as building new ones as
necessary. And that, finally, is the path
toward a true discipline of software
engineering.
Conclusion
The term paradigm shift may be a bit
overused these days; nevertheless,
the kernel-based Essence approach
to software engineering can quite
reasonably be considered to be such
a shift. It truly represents a profound
change of viewpoint for the softwareengineering community.
When Thomas Kuhn introduced
the concept of a paradigm shift in his
influential book, The Structure of Sci
entific Revolutions,5 he stressed the difficulty (Kuhn even claimed impossibility) of translating the language and
theory of one paradigm into another.
The software-development community has actually seen such shifts before, in which those steeped in the old
paradigm have trouble even understanding what the new paradigm is all
about. The move to object orientation
was one such shift, as, in many ways,
54

COM MUNICATIO NS O F TH E ACM

is the current shift to agile methods.


In this regard, Essence can, indeed,
be considered a paradigm shift in two
ways. First, those steeped in the old
school of software engineering have
to start thinking about the true engineering of software specifically, rather
than just applying practices largely
adapted from other engineering disciplines. Second, those in the software
craftsmanship and agile communities need to see the development of a
true engineering discipline as a necessary evolution from their (just recently
hard-won!) craft discipline.
In regard to the second point, in
his foreword to The Essence of Soft
ware Engineering: Applying the SEMAT
Kernel,3 Robert Martin, one of the SEMAT signatories, describes a classic
pendulum swing away from software
engineering toward software craftsmanship. Martins assessment is correct, but it is important to note that
this proverbial pendulum should not
simply swing back in the direction it
came. To the contrary, while swing it
must, it now needs to swing in almost
a 90-degree different direction from
which it came, in order to move toward a new discipline of true software
engineering.
There is, perhaps, hardly a better image for a paradigm shift than
that. In the end, the new paradigm of
software engineering, while building
on the current paradigm of software
craftsmanship, must move beyond it,
but it will also be a shift away from the
old paradigm of traditional software
engineering. And, like all paradigm
shifts before, this one will take considerable time and effort before it is
completeat which point, as the new
paradigm, everyone will consider its
benefits obvious.
Even as it stands today, though, using Essence can provide a team with
some key benefits. Essence helps
teams to be agile when working with
methods and to measure progress in
terms of real outcomes and results of
interest to stakeholders. These progress measurements are not only on
one dimension, but along the seven
dimensions of the kernel alphas, all
of which need to move along at some
pace to reduce risks and achieve results.
Further, Essence can allow orga-

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

nizations to simplify governance of


methods, using a pool of practices
that may be adopted and adapted by
project teams. Having Essence as a
common foundation for this also allows practitioners to learn from one
another more readily.
The real shift, however, will only
come as teams truly realize the benefits of Essence today and as SEMAT
builds on Essence to complete the
new software engineering paradigm.
A community of practitioners is now
contributing their experience and becoming part of this refounding of
software engineeringor, perhaps,
really founding it for the first time.
Related articles
on queue.acm.org
The Essence of Software Engineering:
The SEMAT Kernel
Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon,
Ian Spence and Svante Lidman
http://queue.acm.org/detail.cfm?id=2389616
First, Do No Harm: A Hippocratic Oath
for Software Developers
Phillip A. Laplante
http://queue.acm.org/detail.cfm?id=1016991
Software Development with Code Maps
Robert DeLine, Gina Venolia and Kael Rowan
http://queue.acm.org/detail.cfm?id=1831329
References
1. Graziotin, D. and Abrahamsson, P. A Web-based
modeling tool for the SEMAT Essence theory of
software engineering. J. Open Research Software 1, 1
(2013), e4; http://dx.doi.org/10.5334/jors.ad.
2. Jacobson, I., Ng, P-W., McMahon, P., Spence, I. and
Lidman, S. The Essence of software engineering: The
SEMAT kernel. ACM Queue 10, 10 (2012); http://queue.
acm.org/detail.cfm?id=2389616.
3. Jacobson, I., Ng, P.-W., McMahon, P. E., Spence, I.
and Lidman, S. The Essence of Software Engineering:
Applying the SEMAT Kernel. Addison-Wesley, Reading,
PA, 2013.
4. Jacobson, I., Spence, I. and Ng, P.-W. Agile and SEMAT
Perfect partners. Comm. ACM 6, 11 (Nov. 2013); http://
cacm.acm.org/magazines/2013/11/169027-agile-andsemat/abstract.
5. Kuhn, T. The Structure of Scientific Revolutions.
University of Chicago Press, 1962.
6. Object Management Group. EssenceKernel and
language for software engineering methods, 2014;
http://www.omg.org/spec/Essence.
Ivar Jacobson is the founder and chairman of Ivar
Jacobson International. He is a father of components
and component architecture, use cases, aspect-oriented
software development, modern business engineering,
the Unified Modeling Language, and the Rational Unified
Process.
Ed Seidewitz is the former CTO, Americas, for Ivar
Jacobson International and is currently chair of the
ongoing Essence Revision Task Force. With Ivar Jacobson
International, he has led agile system architecture and
development engagements in both the commercial
and government sectors and participated in practice
development.

Copyright held by owners/authors. Publication rights


licensed to ACM. $15.00.

contributed articles
Computer models of emotion inform
theories of human intelligence and
advance human-centric applications.
BY STACY MARSELLA AND JONATHAN GRATCH

Computationally
Modeling
Human Emotion
human behavior is an old debate
that has become increasingly relevant to the
computational sciences. Two-and-a-half millennia
ago, Aristotle espoused a view of emotion at times
remarkably similar to modern psychological theories,
arguing that emotions (such as anger), in moderation,
play a useful role, especially in interactions with
others. Those who express anger at appropriate
times are praiseworthy, while those lacking in anger
at appropriate times are treated as a fool. The Stoics
took a different view; four centuries after Aristotle,
Seneca considered emotions (such as anger) as a
threat to reason, arguing, reason is only powerful
so long as it remains isolated from emotions. In the
18th century, David Hume radically departed from the
Stoic perspective, arguing for the key motivating role of
emotions, saying, Reason is, and ought only to be the
slave of the passions.
A similar dichotomy of views can be seen in the
history of artificial intelligence (AI) and agent research.
EMOTIONS ROLE I N

56

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Early work by Herbert A. Simon35 argued that emotions served a critical


function in intelligent behavior, as
an interrupt capacity that provides
a means for an organism to shift between competing goals, as well as
to balance reactive and deliberative
processing. Marvin Minsky posed his
question of whether a robot could
even be intelligent without emotion.
However, late-20th century AI research
took a more Stoic perspective, treating
emotion as antithetical to intelligence.
Modern research in psychology
and neuroscience continues to transform the debate. Appraisal theories
of emotion21 emphasize the role of
reasoning in eliciting emotion, viewing emotion as arising from peoples
appraisal of their relationship to
the environment that guides adaptive responses. Recent studies establish emotions critical role in decision making, a point highlighted by
the fact that neurological deficits in
emotion processing lead to deficits
in decision making.3 In keeping with
Simons view of emotion as interrupt, emotions prime perceptions
and response patterns. Angry people
are, for example, quicker to perceive
threats11 and are generally primed for
an aggressive response.20
Echoing Aristotles view, research
has also argued emotions and their
expression play a powerful, adaptive
role in social interaction; for example,
emotional displays convey informa-

key insights

Processes akin to emotion are


required by any intelligent entity
facing a dynamic, uncertain, and social
environment.

Psychological theories of emotion (such


as appraisal theory) can serve as an
architectural specification for machines
that aim to recognize, model, and
simulate human affect.

Realizing psychological theories as


working computational models advances
science by forcing concreteness,
revealing hidden assumptions, and
creating dynamic artifacts that can be
subject to empirical study.

ALL IM AGES BY OLLYY/SHUT TERSTOCK.COM

DOI:10.1145/ 2631912

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

57

contributed articles
Figure 1. Illustration of the dynamics of emotional reactions.

0s

0.1s surprise

0.4s aversive/fear

0.66s aggressive

2s concern for others

Figure 2. EMAs appraisal, coping, and reappraisal.

Causal Interpretation
Environment

Self
Desires

Beliefs About World

Perception

Intentions

World

Action
Appraisal

Inference

Emotion
Focus

Coping
Control Signals

tion about an individuals beliefs, desires, and intentions and thereby serve
to inform and influence others. Anger
and guilt can improve group utility by
minimizing social conflicts,15 while an
expression of distress induces social
support.13 What makes these signals
powerful, as Hume suggested, is the
shared knowledge of the motivational power of emotion. We may believe
someone feels a situation unpleasant,
but, often, what motivates us to act is
the emotional content perceived in the
persons behavior, a parents anger, or
a childs cries of distress.
This research has spawned a rebirth of interest in modeling emotion
in AI, robotics, and agent research. In
particular, software agent and robotics research has explored computational models of emotion as a way to
address control and decision trade58

COMM UNICATIO NS O F THE ACM

offs by directing cognitive resources


toward problems of adaptive significance for the organism.5,7,33,36
Research in autonomous agents
and multi-agent systems, as well as in
human-computer interaction (such as
Conati and MacLaren8), have explored
how to exploit emotions social function in facilitating interactions between computer systems and human
users. Emotions and emotional displays have been used in virtual characters to exploit the social function
of emotional expression to motivate22
and establish empathy and bonding.27
Research in computational models also influences theories of human
emotion by transforming how these
theories are formulated and evaluated.
Realizing a theory as a computational
model requires processes and their
interactions to be formally detailed,

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

2.6s concern/social engagement

thereby exposing implicit assumptions


and hidden complexities. Incorporating the models into larger simulations
further exposes hidden issues and can
extend the scope of the theory; for example, incorporating emotion into
more-comprehensive simulations of
human behavior has led researchers to
address fundamental questions about
the relation of appraisal processes to
other cognitive processes, perception,
and behavior.4,6,12,25
On a conceptual level, computational models enrich the language-ofemotion theories; for example, several
computational models have recast
emotion theories in terms of concepts
drawn from AI, including knowledge
representation (such as Gratch and
Marsella17), planning (such as Dias and
Paiva12), and neural networks (such as
Armony et al.1).
On an empirical level, computational models facilitate an expanded
range of predictions compared to conventional theory. Computer simulations are a way to explore the temporal
dynamics of emotion processes and
form predictions about the source and
time course of those dynamics. Manipulations of experimental conditions
may be explored more extensively first
with a computational model, as in
ablating functionalities or testing responses under adverse conditions that
may be costly, risky, or raise ethical
concerns in vivo.1 Simulations can reveal unexpected model properties that
suggest further exploration. Additionally, models of emotion and affective
expression have been incorporated
into virtual humans,37 software artifacts that look and act like humans,
capable of interacting with people in
a virtual world they cohabit. These systems essentially allow for the study of
emotion in a virtual ecology.
Here, we discuss our work on a

contributed articles
computational model of emotion,
detailing the design principles that
drove the work, as well as its realization within a cognitive architecture. As
we envision, a fundamental challenge
for a computational model of emotion is how to address how emotions
arise and evolve over a range of eliciting situations, from physical stimuli to
complex social situations, in keeping
with roles in individual behavior and
social interaction. These emotional
responses can be quick and reactive or
seemingly more deliberative, unfolding over minutes, days, even weeks;
for example, anger at a co-workers behavior may not arise immediately but
rather require inferences about the
underlying causes of the behavior. In
short, emotions are inherently dynamic, linked to both the worlds dynamics
and the dynamics of the individuals
physiological, cognitive, and behavioral processes.
Drawing on a leading psychological theory of emotion, we discuss how
a computational model of emotion
processes can address both the time
course of emotions and the range of
eliciting conditions. After laying out
the model, we discuss how it has transformed our thinking on emotion and
the old debate on the relation of cognition to emotion. We then discuss an
example use of the model in AI and address validation. Whether one is using
a model of emotion to improve some
application or as a methodological
tool in the study of human emotion, a
central question is how to validate the
model in light of such uses. First, however, we discuss a salient example of
emotions role in behavior.
Example
To help ground our discussion of appraisal theory and our computational
approach to modeling it, we describe a
real-world emotion-evoking situation.
Recorded by happenstance, it serves
to illustrate both the rich dynamics of
emotion processes and the range of
eliciting conditions that induce emotions. As part of our work on modeling virtual humans, we were doing an
improvisational session with actors to
record their use of nonverbal behavior. As the rehearsal wore on into a hot
summer Los Angeles night, a dove flew
into an open window; Figure 1 covers

the sequence of reactions of one of the


actors. Although such an uncontrolled
event makes rigorous analysis of reactions uncertain, we suggest the following interpretation:
The bird flew into the window and
then hit a windowsill in a failed attempt to fly back out. The actor proceeded to orient toward the stimulus
of the sound. The first reaction was
apparent surprise, revealed by the one
of the features of surprise discussed
by Charles Darwin9 involving raised
eyebrows, serving to both increase the
field of view and warn others of an unexpected event.
The eyebrows then lowered, and the
mouth opened. Mouth opening can
have functional significance, as a visual or audible signal (such as shouting)
or to draw in air to oxygenate the blood
in preparation for a fight or flight response. The lowered eyebrows suggested a negative affective response (fear).
At this point the actor moved away
from the threat of the dove (a flight response) but at the same time started
to assume a more aggressive, defensive stance. Her hands moved on the
umbrella in preparation of using it as
a weapon to possibly whack the bird (a
fight response).
She continued to quickly move away
(approximately seven feet), and in the
process the umbrella was lowered and
a hand went up to her mouth, as she
reacted to others predicament in the
room. Her hand quickly went into a
classic stop (or be careful) gesture as
she reversed direction and started to
move toward the bird. Her concern
now shifted from herself to the bird, as
the bird was caught in the hair of a fellow actor and in danger of being hurt.
In the final frame in Figure 1, the actor
has a handkerchief she will use to rescue the bird by wrapping and releasing
it without harm out the window. However, after the bird was safely released
out the window, the actors mood
remained in a heightened state that
made continued rehearsal impossible.
We see in this interpretation of
events a variety of functional roles for
emotion relevant to researchers in AI,
autonomous agents, and multi-agent
systems.
Clearly illustrated is emotions function in interrupting and re-prioritizing
cognition, as discussed by Simon.35 We

see interruption of current attention,


cognitive processes, and physical responses that shift and recruit resources
to deal with a new threatening situation,
specifically to gather more information
relevant to ones self, interrupt current
goals associated with the improvisation
session, and switch to the goal of dealing with a potential threat, taking action in preparation to dealing with that
threat at both the physical level (such
as fight and flight) and physiological
responses (such as sucking in oxygen
to oxygenate the blood). All this was in
service to adjusting to a dynamic relation between the actor and her environment. The situation was changing, due,
in part, to events external to the actor
(such as a bird flying in the window toward the actor), as well as to the actors
own response (such as arming oneself
and moving away from the event). The
actors interpretation of the situation
also appeared to evolvebird as threat
versus bird as victimsuggesting perceptual and inferential processes with
their own internal dynamics, requiring
time to draw inferences and reassess
the situation and replan, as new knowledge is brought to bear. There were
more persistent dynamics as well. The
altered mood that persisted after the
event could play a functional role. Such
heightened arousal can prepare an individual for other quick responses, assuming the event presages future similar occurrences.
As events unfolded, emotions
function in improving multi-agent
coordination and group utility15 was
also clearly on display. In particular, emotion and its expression play
a role in signaling mental states, including emotions and intentions that
influence interaction; for example,
expressions of anger may ward off
the hostile agent. The expressions of
emotion can also help orient and coordinate group response; the expression of fear that signals a common
threat to members of the agents own
group and expression of compassion
that can influence interpersonal attitudes and empathy, thereby serving to
establish common goals.
We also see in this quick evolution
of reactions and behaviors the powerful role of emotions as motivator, echoing Humes view of the motivating role
of emotions.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

59

contributed articles
Finally, the trajectory of events in
the rehearsal studio also reveals emotions rapidly changing nature. Overall, the observed reactions suggest a
progression from surprise about the
unexpected event, concern for protecting self, and finally concern for others,
including the original source of the
perceived threatthe bird. This happened quite rapidly. Within approximately 2.6 seconds, the goals went
from flight to fight to helping the bird.
The expression of raised eyebrows often associated with surprise took approximately 60 milliseconds and the
expression of lowered eyebrows and
lowered jaw (often associated with anger and responses to threat) approximately 300 milliseconds. Tightly coupled with these evolving concerns from
threat-to-self to threat-to-other and
the emotion dynamics of fear/anger to
compassion/relief is a corresponding
progression of coping responses from
defend/attack to help.
As interpreted here, this example
presents fundamental challenges for
a model of emotion processes. First,
a model must be able to address
how emotions arise and evolve over
a range of eliciting conditions, from
simple physical events to complex
social situations. Second, emotional
responses can be rapid, on the order
of milliseconds, or unfold over minutes or days, following some delib-

60

COMM UNICATIO NS O F THE ACM

eration or inference. Emotions dynamics are linked to both the worlds


dynamics and the dynamics of the
individuals physiological, cognitive,
and behavioral processes.
From Theory to Model
Computational models of emotion
often rely on psychological theories
of emotion as a basis for a computational model. Minimally, the theory
serves to define what an emotion is, as
in what comprises an emotional state
like anger. Also, theories may lay out
the antecedents and consequents of
an emotion, factors critical to development of a computational model of
the emotion process.
Complicating development of the
computational model of emotion is that
there are very different psychological
theories of emotion. Theories differ as to
which components are treated as intrinsic to an emotion (such as cognitions,
somatic processes, behavioral tendencies, and responses), the relationships
between components (such as whether
cognitions precede or follow somatic
processes), and representational distinctions (such as whether anger is a linguistic fiction or a natural kind).
Describing the range of theories
that can inform model development
is beyond our scope here; for a more
complete discussion, see Marsella et
al.26 Nevertheless, we can very broadly

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

characterize many modern theories


into three categories:
Discrete theories of emotion.14 These
theories argue there is a limited number of core emotions that are biologically determined, innate natural
kinds (such as anger and sadness).
Further, their expression is shared
across people and cultures. A related
view conceptualizes emotions as distinct neural circuits;29 see Armony1 for
an example of a theory of conditioned
fear response and associated neural
network model.
Dimensional theories of emotion.
These theories argue that emotion and
other affective phenomena should be
conceptualized, not as discrete categories but as a point in a continuous (typically 2D or 3D) space.2,28 Dimensional
theories often argue discrete emotion
categories (such as anger) do not have
a specific biological basis; that is, there
is no brain region or circuit that is
unique to that emotion category. Rather, they are folk-psychological labels
people assign to loosely coupled collections of mental and physical states.2
Computational models that build on
dimensional theories often use the
PAD theory of Mehrabian and Russell,28 its three dimensions corresponding to pleasure (a measure of valence),
arousal (indicating the level of affective
activation), and dominance (a measure
of power or control). Several computational models rely on dimensional theories, to, say, control action selection,
model an embodied feeling state that
is mapped to emotion categories, and
model moods.4,7,16
Appraisal theories of emotion. These
theories arose from attempts to detail
the mental processes underlying the
elicitation of emotions.21,32 Just as the
actor in our example had to reconcile
her goals and needs in relation to a rapidly
changing environment, appraisal theories say emotions arise from a process of
comparing individual needs to external demands. That is, emotions cannot be explained by solely focusing on
the environment or by solely focusing
on the individual. Rather, they reflect
the person-environment relationship. Appraisal theories further posit
this person-environment relationship is characterized (or appraised)
in terms of a set of criteria, variously
called appraisal variables, checks, or

contributed articles
dimensions; for example, Is this event
desirable with respect to ones goals
or concerns?; Who caused it?; Was it
expected?; and What power do I have
over its unfolding? The results of these
appraisal checks are in turn mapped
to emotion. Some specific variants of
appraisal theories then go on to detail
how the resulting emotions influence
the individuals cognitive and behavioral responses; for example, Lazarus21
detailed how the emotions lead to coping responses that seek to change the
world (problem-directed coping) or
ones own emotional response (emotion-directed coping).
Beyond its impact in psychology,
appraisal theories have become the
dominant framework for building
computational models of emotion; see
Reisenzein et al.31 for more on models that use appraisal theories. This
dominance reflects, in part, its prominence in emotion psychology. More
fundamentally, however, the concept
of appraisal (involving judgments like
desire, expectedness, and cause) maps
nicely to traditional AI concepts (such
as the belief-desire-intention models
of agency), a point we emphasize when
describing our appraisal-based model.
Appraisal theories are not without
criticism. Indeed, the characteristic
that makes them most attractive to
computational modelersemphasis
on the role of inferential processes
is also its most controversial feature
within psychology. By emphasizing
judgments over some explicit representation of a person-environment
relationship, appraisal theories are
traditionally viewed as requiring expensive cognitive inference as a precursor to emotional reactions; that is,
an individual must engage in inference before responding emotionally
to some stimuli. This characteristic
seems to fly in the face of the rapid
and seemingly automatic emotional
reactions we see in, say, our actors response to the bird. Prominent critics
of appraisal theories in the 20th century40
argued emotion is inherently reactive
and appraisals are best viewed as a
consequent, certainly not a precursor,
of emotional reactions.
These criticisms are largely irrelevant, however, when one views appraisal theories from a computational
perspective. In our modeling work,

Computational
models of
emotion are used
in the design of
virtual humans,
autonomous
embodied
characters
capable of
face-to-face
interaction
with real humans
through verbal
and nonverbal
behavior.

we address this criticism of appraisal


theories by emphasizing appraisal and
inferences are distinct processes that
operate over the same mental representation of a persons relationship
to the environment. We distinguish
between the construction of this representation and its appraisal. The
construction might involve slow, deliberative inferences or fast, reactive
inferences. Regardless, the appraisal
process that assesses this representation is fast, parallel, and automatic.
EMA Model
As we define it, a computational model
of appraisal includes: an appraisal-derivation process that interprets a representation of the person-environment
relationship to derive a set of appraisal
variables; an emotion-derivation model
that takes this set of appraisals and produces an emotional response; and a set
of behavioral consequence processes,
or coping strategies, triggered by this
emotion and that subsequently manipulate the person-environment.
Depending on how these three processes are reified, different emotion
models (corresponding to different
variants of appraisal theory) can be
produced; see, for example, Marsella
et al.26 We now turn to one approach,
our own EMA (EMotion and Adaption)
model17,24 (see Figure 2).
Person-environment relation. In
EMA, the model maintains an explicit
representation of the agent-environment relationship that serves as
both input to and output of the various appraisal processes. This explicit
representation is the agents view of
how it relates to the environment and
consists of a set of beliefs, desires,
intentions, plans, utilities, and probabilities, constructs drawn from traditional notions of decision theory
and AI planning. We refer to this representation as the causal interpretation to emphasize the importance of
causal reasoning, as well as the interpretative (subjective) character of the
appraisal process. The causal interpretation (which, in cognitive architecture terminology, corresponds to
the agents working memory) encodes
the input, intermediate results, and
output of inferential processes that
mediate between an agents goals and
its physical and social environment

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

61

contributed articles
(such as perception, planning, explanation, and natural language processing). These inferential processes
could be fast, as in recognizing the
threat of a bird flying toward oneself,
or more deliberative (such as forming
a plan to save the bird).
The causal interpretation is a snapshot of the agents current knowledge
concerning the agent-environment relationship. This knowledge changes,
moment to moment, in response to observation or inference; for example, the
agents actions or the actions of other
social actors change the environment,
effects that are reflected in the causal
interpretation as soon as they are perceived by the agents senses. Further,
the mere act of thinking can change
the perceived agent-environment relationship; for example, as the agent develops plans or forms intentions, these
intentions are also reflected as changes in the casual interpretation.
The representation of the causal interpretation supports rapid, essentially
reactive, assessment by the appraisalderivation process. The need for rapid
appraisal thus poses a requirement on
the inferential processes that maintain
the causal interpretation.
Appraisal-derivation process. Appraisal theories characterize emotioneliciting events in terms of a set of
specific appraisal variables, but most
theories are vague with respect to the
processes underlying these judgments.
We assume appraisal is fast, parallel,
and automatic. These characteristics
are achieved by modeling appraisal as
a set of continuously active feature detectors that map features of the causal
interpretation into appraisal variables.
All significant features in the causal interpretation are appraised separately,
simultaneously, and automatically;
for example, if the causal interpretation encodes an action with two consequences, one good, one bad, each consequence is appraised in parallel, and
any factors influencing the desirability
or likelihood of these consequences
are automatically reflected in the appraisals as soon as the factors are recorded in the causal interpretation. In
this sense, appraisals do not change
the causal interpretation but provide a
continuously updated affective summary of its contents; see Gratch and
Marsella17 for more on the architectur62

COM MUNICATIO NS O F TH E AC M

Incorporating
emotion and its
expression allow
virtual humans
to exploit and
respond to the
social functions of
emotion, as well as
appear lifelike.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

al principles distinguishing appraisal


from the cognitive operations maintaining the causal interpretation.
The appraisal process in EMA associates a data structure, or appraisal
frame, with each proposition. The
appraisal frame maintains a continuously updated set of appraisal values
associated with each proposition. Values include:
Perspective. The viewpoint from
which the proposition is judged; EMA
appraises events from its own perspective but also from the perspectives of
other agents;
Relevance. EMA judges propositions
relevant if it has non-zero utility for
some agent;
Desirability. The value of a proposition to the agent (such as Does it advance or inhibit its utility?) can be positive or negative;
Likelihood. A measure of the likelihood of propositions;
Expectedness. The extent to which a
state could have been predicted from
the causal interpretation;
Causal attribution. Who deserves
credit/blame?;
Controllability. Can the outcome be
altered through an agents actions?;
and
Changeability. Can the outcome be
altered by another agent?
Each appraised event is mapped
into an emotion instance of some type
and intensity, as discussed next.
Emotion derivation. In EMA, appraisal informs an agents coping
response but is biased by an overall
mood state. Mood acts as proxy for
certain sub-symbolic (brain or bodily)
processes40 important for reconciling appraisal models with empirical
observations (such as moods influence on judgments34 and core affect2).
As we discussed in the bird example,
such mood effects can serve an adaptive function.
At the appraisal level, EMA maintains multiple appraisal frames, one
for each proposition in the causal interpretation. Multiple appraisals of
even the same event are possible, as
the event could affect different goals
in different ways. Individual appraisal
frames (and associated intensities) are
aggregated into a mood, a running average of appraised events over time,
disassociated from the original elicit-

contributed articles
ing events; that is, mood is not intentional. EMA applies a mood adjustment to individual appraisal frames.
EMAs moment-to-moment coping
response is selected automatically by
a simple activation-based focus of attention, with the appraisal frame that
determines coping as the most recently accessed such frame with highest
mood-adjusted intensity.
Affect consequences. Finally, EMA
includes a computational model of
coping in the appraisal process. Coping determines how the agent responds to the appraised significance of
events, with the purpose being to alter
a persons subjective interpretation of
the person-environment relation. EMA
proposes coping strategies to maintain
desirable or overturn undesirable infocus events, or appraisal instances.
These strategies work in essentially the
reverse direction of the appraisal that
motivates them, by identifying features
of the causal interpretation (such as beliefs, desires, intentions, and expectations) that produced the appraisal and
that should be maintained or altered.
In EMA, coping strategies are control signals that enable or suppress
cognitive processes that operate on
the causal interpretation, including
sensing, avoiding a threat, refining a
plan, or adding/dropping goals and
intentions. Coping sanctions actions
congruent with the current appraisal
pattern. EMA provides a formal realization of the coping strategies discussed
in the clinical psychology literature by
defining coping strategies in terms of
their affect on the agents attention,
beliefs, desires, or intentions:
Attention-related coping. Certain
coping strategies modulate the agents
attention to features of the environment, thereby altering their emotional
state by altering working memory (the
causal interpretation); for example,
in the bird example, the actors orientation toward the stimulus could
be viewed as seeking information
about a surprising event. Alternatively,
one can suppress information; for
example, a student concerned about
a course project could avoid checking
the due date.
Belief-related coping. A range of coping strategies suggests alterations to
belief states in order to modulate these
emotional states; for example, after

doing poorly on an important exam, a


student might seek to shift responsibility to the teacher, thus alleviating
self-guilt. Prior to a difficult exam, a
student might cope with stress by engaging in wishful thinking, imagining the student will do well.
Desire-related coping. Regulates
emotion by altering goal priorities. A
student facing an exam might engage
in distancing, deciding it is unimportant to do well. Or the student
might positively reinterpret or find
a sliver lining. If passing seems impossible, well then, the student is free
to party before the exam.
Intention-related coping. Regulates
emotions by altering intentions or
by taking actions; for example, our
student might plan to study for the
exam. Interestingly, the formation of
an intention will alter the current emotional state in EMA, even if the plan is
not executed. Alternatively, the student
might cope with stress by seeking
instrumental support from a study
partner. Moreover, if the student does
poorly on the exam, the student could
make amends to his or her parents
to alleviate guilt by promising to study
harder next time. The student could
also engage in resignation, dropping
an intention to achieve a desired state
(such as believing being pre-med is desirable but unattainable).

EMA proposes strategies in parallel


but adopts them sequentially, with a
set of preferences resolving ties; for example, EMA prefers problem-directed
strategies (such as take action, plan) if
control is appraised as high, and emotion-focus strategies (such as distancing, resignation, and wishful thinking)
if control and changeability are low.
Figure 1 outlines how the causal
interpretation, appraisal, focus, and
coping interact with one another and
with the agents perceptual and inferential processes. Recall in the bird
scenario that the models dynamics
involved several sources. Events happen naturally in the world, altering the
causal interpretation through perception. The agent also executes actions
with effects that also alter the world
and therefore causal interpretation.
The agents own inferential processes
(that here are meant to include belief
maintenance, action selection, and
planning) can alter the causal interpretation. These changes to the causal interpretation induce changes in
appraisals. Of particular importance
for emotion processes, appraisal and
coping operate within a loop whereby
a situation may be appraised, leading
to emotions and coping responses
that influence the agents inferential
processes that alter the person-environment relation. This influence, in

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

63

contributed articles
turn, affects subsequent reappraisals
of the situation. Emotional meaning
thus evolves in EMA as the individual
interacts with the physical and the social environment.
Role in Theory Formation
and Testing
As noted, the relation between emotion and rational thought is a debate of
long standing. One benefit of computational models is they are potentially
powerful research tools that weigh on
such debates by forcing explicit commitments as to how mental processes
are realized, how they interrelate, and
how the processes unfold over time.
EMA, in particular, makes an explicit commitment to the relation between emotion and an agents cognitive processes. Appraisal is treated as
fundamentally reactive, an automatic
assessment of the contents of mental
representations. Differences in the
temporal course of emotion dynamics are accordingly due to differences
in the temporal course of eliciting
conditions, perceptual processes,
and inferential processes that maintain the representation of the personenvironment relation, including both
deliberative and reactive processes.
This allows the model to explain in
a uniform way both fast, seemingly
automatic emotion responses, and
slower, seemingly more deliberative
responses, in contrast to more complex models and theories that postulate multiple processes.12,32
EMA assumes cognition and perception encodes the personal relevance of events in ways that make

appraisal simple, fast, and general,


evolving as cognitive processes update the agent-environment relationship. Appraisal is thus not so much a
process as it is an output requirement
on cognition and perception. The
values generated by those processes
constitute the appraisal values. Similarly, we pose the inverse requirement
on coping strategies, that the output
of coping is the adjustment of attention, beliefs, desires, and intentions
on which cognition and appraisal rely.
Coping can be viewed as an inverse of
the appraisal process, seeking to adjust the causal interpretation in order
to alter subsequent appraisals.
These design commitments follow
from our effort to address key challenges for any model of emotion. One
such challenge is to explain the often
rapid, seemingly reactive, dynamics of
emotional process, as outlined in the
bird example, that have been raised as
a challenge to appraisal theories.40 Another challenge is that emotions arise
and evolve over a wide range of eliciting situations, from physical events to
complex social situations.
In EMA, the generality of appraisal
to address complex social interactions, as well as the demands of physical threats, is due largely to appraisals
separation from a range of perceptual
and cognitive processes it leverages.
EMA also generalizes the role of emotion in an agents overall architecture.
In EMA, appraisal and coping play a
central role in mediating response for
the agent generally. This role is in keeping with Simons view35 of emotion as
an interrupt mechanism and research4

Figure 3. Virtual human accident scene (USC Institute for Creative Technologies).

64

COMMUNICATIO NS O F TH E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

that argues for emotions role in decision making.


EMA maintains that appraisal and
coping shape, but do not determine, the
agents response; for example, whether
an agent copes by forming the intention to act hinges on whether its planning and problem-solving processes
can identify an appropriate intention
or plan. Recall the umbrella the actress
was holding in the bird scenario. EMA
maintains the response of preparing
to whack the bird depends on the emotional response to the threat and the
fact that holding the umbrella beforehand may enable (or prime) cognitions
formation of the intention.
At the same time, EMA also has significant shortcomings, thus identifying challenges for research on computational models, as well as underlying
theories. Most notably, EMAs appraisal process focuses on deriving appraisal values and treats emotion categories
largely as epiphenomenal. Another
limitation follows from the inferential
processes that support appraisal by
maintaining the causal interpretation.
In particular, because the causal interpretation has limited capacity to model
the beliefs of other agents, more complex social emotions (such as embarrassment) are not modeled. The inference processes also need to impose
better constraints on coping strategies
specifically due to the absence of constraints on belief revision; the overall model allows for wishful thinking
and resignation that alters beliefs and
goals while ignoring potential effects
on related beliefs or goals; see Ito et
al.19 for a utility-based approach to address this limitation.
Nevertheless, both the strengths
and weaknesses of a model like EMA
support the idea of computational
modeling of emotions as a powerful
approach to addressing the question of
the processes underlying emotion and
its relation to cognition. Constructing
EMA forced us to make specific commitments about the representation of
the person-environment relationship,
the computation of appraisals based
on these representations, the role of
perception, memory, interpretation,
and inference in appraisal, the modeling of coping, and the relationship
among appraisals, emotions, and coping. Further, once computationally re-

contributed articles
alized, simulation allows the model to
be explored systematically and manipulated, thereby generating predictions
that can be validated against reactions
of human subjects. Our development
of the model also identified key weaknesses that must still be addressed in
both model and theory.
Role in Virtual Humans and HCI
As outlined earlier, computational
models of emotion are used in the
design of virtual humans, autonomous embodied characters capable
of face-to-face interaction with real
humans through verbal and nonverbal behavior. Incorporating emotion
and its expression allow virtual humans to exploit and respond to the
social functions of emotion, as well
as appear lifelike.
With EMA, our goal is not simply
to add emotion. Rather, we have explored how organization of a virtual
humans cognitive processes around
appraisal and coping can facilitate
the design and integration of the multiple cognitive capabilities required
to create human-like behavior, including perception, planning, dialog
processing, and nonverbal communication. Appraisal theories suggest
a general set of criteria and control
strategies that can inform and coordinate the behavior of diverse cognitive
and social functions.
Whether processing perceptual
input or exploring alternative plans,
cognitive processes must make similar
determinations. Is the situation/input
they are processing desirable and expected? Does the module have the resources to cope with its implications?
Such homogenous characterizations
are often possible, even if individual
components differ markedly. By casting the state of each module in these
same general terms, it becomes possible to craft general control strategies
that apply across modules, leading to
more coherent global behavior.
Consider an example from Swartout
et al.37 of resolving natural language
ambiguities. The human participant
happens on an accident scene in the
virtual environment (see Figure 3); a
virtual crowd has gathered; an injured
boy is on the ground; a virtual soldier
and troops have assembled; and there
are damaged vehicles. The participant

A model that
approximates
natural human
behavior might be
very different from
one that drives a
synthetic movie
actor.

asks the soldier, What happened


here? The question is ambiguous
since many things have happened: the
participant just arrived; the troops assembled; an accident occurred; and a
crowd formed. Whereas all these actions would in some sense be a correct response, it would be silly for the
soldier to say, You just drove up. The
expected response is a description of
the accident.
To respond correctly requires determination of the linguistic focus of the
discussion. A common heuristic is to
use recency, or whatever was most
recently discussed or occurred most
recently. In this case, the accident scenario, recency does not work, as several
things have happened subsequent to
the accident.
However, people often focus most
intently on what upsets them emotionally, suggesting an emotion-based
heuristic for determining the focus.
Because the virtual soldier incorporates EMA, the linguistic routines have
access to his emotions about the accident and can use that information in
determining linguistic focus, allowing
the soldier to give the most appropriate
answer, specifically to describe the accident and how it occurred.
Additionally, EMA models decision
making as driven by appraisals of alternative plans and uses coping strategies to drive alternative responses in
negotiation38 (such as trying to avoid
negotiation and seeking distributive
solutions as opposed to integrative solutions). EMA is also used to influence
the agents beliefs; for example, under
significant stress due to a blameworthy
event, the virtual human can alleviate
guilt or fear of reprisal by shifting its
beliefs about blame.
Validation
A computational model of emotion
must be judged with respect to its intended ends. A model that approximates natural human behavior might
be very different from one that drives
a synthetic movie actor. A fundamental goal that drives our research is to
create models that accurately predict
human emotion: how it arises from
the structure of situations people face;
how it affects peoples beliefs and actions over time; and how its manifestation affects the beliefs and behaviors of

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

65

contributed articles
other social actors. Here, we review several principles that guide our empirical
approach to model validation; see also
Staller and Petta.36
Understanding the relationship be
tween emotions and unfolding situations.
Although many emotion theories posit
that emotions arise from individuals relationships with their environments, most experimental work has
shied away from directly manipulating the dynamic cycle of change, appraisal, and reappraisal we observed
in the bird example. More common
are mood-induction studies where a
participants mood is shaped independently from the situation (such
as by listening to happy or sad music34) or by creating one-shot situations (such as watching reactions to
the spinning of a roulette wheel30), as
they provide a great measure of experimental control.
Motivated by examples of emotioninvoking scenarios (such as the bird),
we have sought to develop techniques
that systematically manipulate the
temporal dynamics of the person-environment relationship. We have explored techniques that place laboratory participants in emotion-invoking
tasks where aspects of the person-environment relationship are systematically controlled in situations that
unfold and change over time, allowing
us to measure moment-to-moment
changes in a persons appraisals,
emotions, and coping tendencies.35
We then compare these responses
with predictions from EMA.
Linking intra-personal and interpersonal emotion. As outlined in the
bird scenario, emotion helps coordinate both individual and social behavior. Most empirical work adopts one
perspective or the other, but we see the
cognitive and social perspectives as
two sources of information that mutually constrain theory and model development. We have thus sought to show
the same computational models that
predict the intrapersonal antecedents
and consequences of emotion can also
drive the social behavior of humanlike agents and evoke similar social responses as those in human-to-human
emotional exchanges.
One example is reverse appraisal
theory,10 illustrating how appraisal theory provides an explanatory
66

COMMUNICATIO NS O F TH E AC M

Researchers
have turned to
computational
models of emotion
as tools to research
human emotion,
as well as exploit it
in applications.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

framework for predicting peoples


responses to the emotional signals
of others. It maintains that people
use emotional expressions as a sort
of mind reading. When observing another persons emotional reactions
to an environmental event, people infer, or reverse engineer, how experiencers appraise their situation, using
it to recover what goals would have
led to such an appraisal. We showed
empirical support for this concept by
having participants play economic
games with computer agents driven
by the EMA model.
Model-driven experimentation. Finally, our work seeks to create true synergies between computational and
psychological approaches to understanding emotion. We are not satisfied simply to show our models fit
human data but rather seek to show
they are generative in the sense of
producing new insights or novel predictions that can inform understanding. From this perspective, computational models are simply theories,
albeit more concrete ones that afford
a level of hypothesis generation and
experimentation difficult to achieve
through traditional theories.
One example of such model-driven
experimentation is seen in our work
on modeling appraisals of causal attribution. One of our students created
a model of the factors behind causal
attribution appraisals (such as causality, intent, foreknowledge, and coercion). The model made it possible
to generate hypothetically different
situations that should produce different appraisals. These were then
presented to human participants,
and the models predictions were
consistent with human participants
responses.23 Likewise, another student used appraisal theory to derive a
general model of how the ways a problem is described, or framed, affects
decisions people make.18 The model
uses appraisal variables to go beyond
one-dimensional treatments of framing in terms of loss versus gain.39 The
model was in turn used to generate alternative decision scenarios that were
presented to human subjects, and the
model predictions were supported.
These
principlesexamining
emotions in unfolding tasks, linking cognitive and social functions of

contributed articles
emotion, and model-driven experimentationcontinue to shape our
research, yet other approaches may
be better suited, depending on ones
underlying reason for exploring emotion; for example, models designed
to inform intelligent systems might
avoid some of the seemingly irrational
application of coping humans adopt.
Conclusion
Over the past half-century, there has
been rapid growth of cross-disciplinary research employing computational methods to understand human behavior, as well as facilitate interaction
between people and machines, with
work on computational models of
emotion becoming an important component. At times neglected in work in
cognitive science and AI, modern research in human emotion has firmly
established the powerful role emotion
plays in human behavior. As a consequence, researchers have turned to
computational models of emotion
as tools to research human emotion,
as well as exploit it in applications.
Here, we have sought to illustrate the
various ways such models are being
used, from a communitywide general
perspective to providing more specific
details from our own work on EMA.
Modeling appraisal theory in an
agent provides an interesting perspective on the relation between emotion
and rationality. Appraisal theory argues that emotion serves to generalize stimulus response by providing
more general ways to characterize
types of stimuli in terms of classes
of viable organism responses. For an
agent, appraisal dimensions serve a
general, uniform value function that
establishes the personal and social
significance of events. Assessments
(such as desirability, coping potential,
unexpectedness, and causal attribution) are clearly relevant to any social
agent, whether deemed emotional or
not. Having been characterized in a
uniform fashion, the appraisal results
coordinate systemwide coping responses that serve to guide the agents
specific responses to the eliciting
event, essentially helping the agent
find its ecological niche. Emotion is
thus inextricably coupled to how an
agenthuman or artificialreacts
and responds to the world.

Acknowledgment
The work depicted here was sponsored
by the U.S. Army and the Air Force Office of Scientific Research. Statements
and opinions expressed do not necessarily reflect the position or the policy
of the U.S. government, and no official
endorsement should be inferred.
References
1. Armony, J.L., Servan-Schreiber, D., Cohen, J.D., and
LeDoux, J.E. Computational modeling of emotion:
Explorations through the anatomy and physiology of
fear conditioning. Trends in Cognitive Science 1, 1 (Apr.
1997), 2834.
2. Barrett, L.F. Are emotions natural kinds? Perspectives
on Psychological Science 1, 1 (Apr. 2006), 2858.
3. Bechara, A., Damsio, H., Damsio, A., and Lee, G.
Different contributions of the human amygdala and
ventromedial prefrontal cortex to decision making.
Journal of Neuroscience 19, 13 (July 1, 1999),
54735481.
4. Becker-Asano, C. and Wachsmuth, I. Affect simulation
with primary and secondary emotions. In Proceedings
of the Eighth International Conference on Intelligent
Virtual Agents (Tokyo). Springer, 2008, 1528.
5. Blanchard, A. and Caamero, L. Developing affectmodulated behaviors: Stability, exploration, exploitation,
or imitation? In Proceedings of the Sixth International
Workshop on Epigenetic Robotics (Paris, 2006).
6. Broekens, J. Modeling the experience of emotion.
International Journal of Synthetic Emotions 1, 1 (Jan.
2010), 117.
7. Broekens, J., Kosters, W.A., and Verbeek, F.J. On affect
and self-adaptation: Potential benefits of valencecontrolled action-selection. In Proceedings of the
Second International Conference on Bio-inspired
Modeling of Cognitive Tasks (Manga del Mar Menor,
Spain). Springer, 2007, 357366.
8. Conati, C. and MacLaren, H. Evaluating a probabilistic
model of student affect. In Proceedings of the Seventh
International Conference on Intelligent Tutoring
Systems (Maceio, Brazil, 2004).
9. Darwin, C. The Expression of the Emotions in Man and
Animals, Third Edition. Oxford University Press, New
York, 1998.
10. de Melo, C., Gratch, J., and Carnevale, P.J. Reverse
appraisal: Inferring from emotion displays who is the
cooperator and the competitor in a social dilemma.
In Proceedings of the Cognitive Science Conference
(Boston, July 2011).
11. DeSteno, D., Dasgupta, N., Bartlett, M.Y., and Cajdric,
A. Prejudice from thin air. Psychological Science 15, 5
(May 2004), 319324.
12. Dias, J. and Paiva, A. Feeling and reasoning: A
computational model for emotional agents. In
Proceedings of the 12th Portuguese Conference on
Artificial Intelligence (Covilh, Portugal). Springer,
2005, 127140.
13. Eisenberg, N., Fabes, R.A., Schaller, M., and Miller, P.A.
Sympathy and personal distress: Development, gender
differences, and interrelations of indexes. In Empathy
and Related Emotional Responses New Directions in
Child Development, N. Eisenberg, Ed. Jossey-Bass,
San Francisco, CA, 1989, 107126.
14. Ekman, P. An argument for basic emotions. Cognition
and Emotion 6, 34 (1992), 169200.
15. Frank, R. Passions With Reason: The Strategic Role of
the Emotions. W.W. Norton, New York, 1988.
16. Gebhard, P. ALMA: A Layered Model of Affect.
In Proceedings of the Fourth International Joint
Conference on Autonomous Agents and Multiagent
Systems (Utrecht, the Netherlands), 2005.
17. Gratch, J. and Marsella, S. A domain-independent
framework for modeling emotion. Journal of Cognitive
Systems Research 5, 4 (Dec. 2004), 269306.
18. Ito, J.Y. and Marsella, S.C. Contextually based utility:
An appraisal-based approach at modeling framing and
decisions. In Proceedings of the 25th AAAI Conference
on Artificial Intelligence (San Francisco, Aug. 711).
AAAI Press, 2011, 14421448.
19. Ito, J.Y., Pynadath, D.V., and Marsella, S.C. Modeling
self-deception within a decision-theoretic framework.
Autonomous Agents and Multi-Agent Systems 20, 1
(May 2010), 313.
20. Keltner, D., and Haidt, J. Social functions of emotions
at four levels of analysis. Cognition and Emotion 13, 5

(1999), 505521.
21. Lazarus, R.S. Emotion and Adaptation. Oxford
University Press, New York, 1991.
22. Lester, J.C., Towns, S.G., Callaway, C.B., Voerman,
J.L., and FitzGerald, P.J. Deictic and emotive
communication in animated pedagogical agents.
In Embodied Conversational Agents, J. Cassell, S.
Prevost, J. Sullivan, and E. Churchill, Eds. MIT Press,
Cambridge, MA, 2000, 123154.
23. Mao, W. and Gratch, J. Evaluating a computational
model of social causality and responsibility.
In Proceedings of the Fifth International Joint
Conference on Autonomous Agents and Multiagent
Systems (Hakodate, Japan), 2006.
24. Marsella, S. and Gratch, J. EMA: A process model of
appraisal dynamics. Journal of Cognitive Systems
Research 10, 1 (Mar. 2009), 7090.
25. Marsella, S. and Gratch, J. Modeling the interplay
of plans and emotions in multi-agent simulations.
In Proceedings of the 23rd Annual Conference of the
Cognitive Science Society (Edinburgh, Scotland, 2001).
26. Marsella, S., Gratch, J., and Petta, P. Computational
models of emotion. In A Blueprint for Affective
Computing: A Sourcebook and Manual, K.R. Scherer, T.
Bnziger, and E. Roesch, Eds. Oxford University Press,
New York, 2010, 2146.
27. Marsella, S., Johnson, W.L., and LaBore, C. Interactive
pedagogical drama. In Proceedings of the Fourth
International Conference on Autonomous Agents
(Montral, Canada, 2000), 301308.
28. Mehrabian, A. and Russell, J.A. An Approach to
Environmental Psychology. MIT Press, Cambridge,
MA, 1974.
29. Panskepp, J. Affective Neuroscience: The Foundations
of Human and Animal Emotions. Oxford University
Press, New York, 1998.
30. Reisenzein, R. Exploring the strength of association
between the components of emotion syndromes:
The case of surprise. Cognition & Emotion 14, 1
(2000), 138.
31. Reisenzein, R., Hudlicka, E., Dastani, M., Gratch,
J., Hindriks, K., Lorini, E., and Meyer, J.-J.C.
Computational modeling of emotion: Toward
improving the inter- and intradisciplinary exchange.
IEEE Transactions on Affective Computing 4, 3 (July
2013), 242245.
32. Scherer, K.R. Appraisal considered as a process of
multilevel sequential checking. In Appraisal Processes
in Emotion: Theory, Methods, Research, K.R. Scherer,
A. Schorr, and T. Johnstone, Eds. Oxford University
Press, New York, 2001, 92120.
33. Scheutz, M. and Sloman, A. Affect and agent
control: Experiments with simple affective states. In
Proceedings of the Second Asia-Pacific Conference on
Intelligent Agent Technology (Maebashi City, Japan).
World Scientific Publishing, 2001, 200209.
34. Schwarz, N. and Clore, G.L. Mood, misattribution, and
judgments of well-being: Informative and directive
functions of affective states. Journal of Personality
and Social Psychology 45, 3 (Sept. 1983), 513523.
35. Simon, H.A. Motivational and emotional controls of
cognition. Psychological Review 74 (Jan. 1967), 2939.
36. Staller, A. and Petta, P. Introducing emotions into
the computational study of social norms: A first
evaluation. Journal of Artificial Societies and Social
Simulation 4, 1 (Jan. 2001), 2760.
37. Swartout, W., Gratch, J., Hill, R., Hovy, E., Marsella, S.,
Rickel, J., and Traum, D. Toward virtual humans. AI
Magazine 27, 1 (2006).
38. Traum, D., Swartout, W., Marsella, S., and Gratch,
J. Fight, flight, or negotiate. In Proceedings of the
Intelligent Virtual Agents Conference (Kos, Greece).
Springer, 2005.
39. Tversky, A. and Kahneman, D. The framing of decisions
and the psychology of choice. Science 211, 4481 (Jan.
30, 1981), 453458.
40. Zajonc, R.B. Feeling and thinking: Preferences need
no inferences. American Psychologist 35 (Feb. 1980),
151175.
Stacy Marsella (stacymarsella@gmail.com) is a
professor of computer science and psychology at
Northeastern University, Boston, MA.
Jonathan Gratch (gratch@ict.usc.edu) is a professor of
computer science and psychology at the University of
Southern California, Los Angeles, CA.

Copyright held by owner/author(s). Publication rights


licensed to ACM. $15.00

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

67

contributed articles
DOI:10.1145/ 2656206

The GPUfs file system layer for GPU software


makes core operating system abstractions
available to GPU code.
BY MARK SILBERSTEIN, BRYAN FORD, AND EMMETT WITCHEL

GPUfs:

The Case for


Operating
System
Services
on GPUs

GPU programming models are still almost entirely lacking in core system
abstractions (such as files and network
sockets) CPU programmers have taken
for granted for decades. Todays GPU
is capable of amazing computational
feats when fed the right data and managed by application code on the host
CPU but incapable of initiating basic
system interactions for itself (such as
reading an input file from a disk). Because core system abstractions are unavailable to GPU code, GPU programmers face many of the same challenges
CPU application developers did a halfcentury ago, particularly the constant
reimplementation of system abstractions (such as data movement and
management operations).
The time has come to provide GPU
programs the useful system services
CPU code already enjoys. This goal
emerges from a broader trend toward
integrating GPUs more cleanly with
operating systems, as exemplified by
work to support pipeline composition
of GPU tasks16 and improve the operating systems management of GPU
resources.4 Here, we focus on making core operating system abstractions available to GPU code and explain the lessons we learned building
GPUfs,19,20 our prototype file system
layer for GPU software.
Two key GPU characteristics make
developing operating system abstractions for GPUs a challenge: data parallelism and an independent memory
system. GPUs are optimized for single

key insights

impressive price/performance and


performance/watt curves, GPUs have become the
processor of choice for many types of intensively
parallel computations, from data mining to molecular
dynamics simulations.14 As GPUs have matured and
acquired increasingly general-purpose processing
capabilities, a richer and more powerful set of
languages, tools, and computational algorithms have
evolved to make use of GPU hardware. Unfortunately,
DUE TO TH EIR

68

COMMUNICATIO NS O F TH E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

GPUs have matured, acquiring


increasingly general-purpose parallel
processing capabilities, though still
lack core operating system abstractions
like files and network sockets.

The traditional CPU-centric programming


model exposes low-level system details
so is no longer adequate for developing
modern accelerated applications.

By allowing developers to access files


directly from GPU programs, GPUfs
demonstrates the productivity and
performance benefits of allowing GPUs
to guide the flow of data in a system.

IMAGE BY KUDRYASH KA

program multiple data (SPMD) parallelism, where the same program is


used to concurrently process many different parts of the input data. GPU programs typically use tens of thousands
of lightweight threads running similar
or identical code with little controlflow variation. Conventional operating
system services (such as the POSIX file
system API) were not built with such an
execution environment in mind. In developing GPUfs, we had to adapt both
the API semantics and its implementation to support such massive parallelism, allowing thousands of threads to
efficiently invoke open, close, read,

or write calls simultaneously.


To feed their voracious appetites
for data, high-end GPUs usually have
their own dedicated DRAM storage. A
massively parallel memory interface
to GPU memory offers high bandwidth
for local access by GPU code, but GPU
access to the CPUs system memory
is an order of magnitude slower, as it
requires communication over a bandwidth-constrained, higher-latency PCI
Express bus. In the increasingly common case of systems with multiple discrete GPUs (standard in Apples Mac
Pro) each GPU has its own local memory, and accessing a GPUs own memory

can be an order of magnitude more efficient than accessing a sibling GPUs


memory. GPUs thus exhibit a particularly extreme non-uniform memory
access (NUMA) property, making it
performance-critical for the operating
system to optimize for access locality in data placement and reuse across
CPU and GPU memories; for example,
GPUfs distributes its buffer cache
across all CPU and GPU memories to
enable idioms like process pipelines
that produce and consume files across
multiple processors.
To highlight the benefits of bringing file system abstractions to GPUs,

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

69

contributed articles
we show the use of GPUfs in a selfcontained GPU application for string
search on Nvidia GPUs. This application illustrates how GPUfs can efficiently support irregular workloads in
which parallel threads open and access
dynamically selected files of varying
size and composition, and the output
size can be arbitrarily large and determined at runtime. Our version is approximately seven times faster than a
parallel eight-core CPU run on a full
Linux kernel source stored in approximately 33,000 small files.
While our prototype benchmarks
represent only a few simple application data points for a single operating
system abstraction, they suggest operating system services for GPU code are
feasible and efficient in practice.

The time has come


to provide
GPU programs
the useful system
services CPU code
already enjoys.

GPU Architecture
We provide a simplified overview of
the GPU software/hardware model,
highlighting properties particularly
relevant to GPUfs; an in-depth description can be found elsewhere,
as in Kirk and Hwu.8 We use Nvidia
CUDA terminology because we implement GPUfs on Nvidia GPUs, although most other GPUs supporting
the cross-platform OpenCL standard6
share the same concepts.
Hardware model. GPUs are parallel
processors that expose programmers
to hierarchically structured hardware
parallelism. At the highest conceptual level, GPUs are similar to CPU
shared-memory multicores, comprising several powerful cores called multiprocessors, or MPs. GPUs support
coarse-grain task-level parallelism via
concurrent execution of different tasks
on different MPs.
The main architectural difference
between CPUs and GPUs lies in the way
a GPU executes parallel code on each
MP. A single GPU program, or kernel
(unrelated to an operating system kernel), consists of tens of thousands of
individual threads. Each GPU thread
forms a basic sequential unit of execution. Unlike a CPU thread, which
usually occupies only one CPU core,
hundreds of GPU threads are concurrently scheduled to run on each MP.
The hardware scheduler interleaves
instructions from alternate threads to
maximize hardware utilization when
threads are stalled (such as when wait70

COMMUNICATIO NS O F TH E ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

ing on a slow memory access). Such


parallelism, sometimes called threadlevel parallelism, or fine-grain multithreading, is essential to achieving
high hardware utilization and performance in GPUs.
At the lowest conceptual level, the
hardware scheduler manages threads
in small groups called warps (32
threads in Nvidia GPUs). All threads in
a warp are invoked in a single-instruction-multiple-data, or SIMD, fashion,
enabling fine-grain data-parallel execution similar to the execution of vector instructions on a CPU.
Software model. A GPU program
looks like an ordinary sequential
program but is executed by all GPU
threads. The hardware supplies each
thread with a unique identifier allowing different threads to select different
data and control paths. Developers are
no longer limited to shader programming languages like GLSL and may
write GPU programs in plain C++/C
or Fortran with a few restrictions and
minor language extensions.a The programming model closely matches the
hierarchy of parallelism in the hardware. Threads in a GPU kernel are
subdivided into threadblocksstatic
groups of up to 1,024 threadsthat
may communicate, share state, and
synchronize efficiently, thereby enabling coordinated data processing
within a threadblock. A threadblock
is a coarse-grain unit of execution that
matches the task-level parallelism support in the hardware; all threads in a
single threadblock are scheduled and
executed on a single MP.
An application enqueues a kernel
execution request into a GPU by specifying the desired number of threadblocks in the kernel and the number of
threads per threadblock. The number
of threadblocks in a kernel can range
from tens to hundreds, typically exceeding the number of MPs, thus improving load balancing and portability
across GPU systems. When a threadblock is dispatched to an MP, it occupies the resources of that MP until all
its threads terminate. Most important,
a threadblock cannot be preempted
a Many productivity frameworks do not require low-level GPU programming; see examples at https://developer.nvidia.com/cudatools-ecosystem

contributed articles
in favor of another threadblock waiting for execution in the global hardware queue. The hardware executes
different threadblocks in an arbitrary,
nondeterministic order. Threadblocks
generally may not have data dependencies, as they could lead to deadlock.
System integration model. From a
software perspective, GPUs are programmed as peripheral devices; they
are slave processors that must be managed by a CPU application that uses the
GPU to offload specific computations.
The CPU application prepares the input data for GPU processing, invokes
the kernel on the GPU, and then obtains the results from GPU memory after the kernel terminates. All these operations use GPU-specific APIs offering
a rich set of functions covering various
aspects of memory and execution-state
management.
From a hardware perspective, there
are two classes of GPUs: discrete GPUs
and hybrid GPUs. Discrete GPUs are
connected to the host system via a PCI
Express (PCIe) bus and feature their
own physical memory on the device
itself. Moving the data in and out of
GPU memory efficiently requires direct
memory access, or DMA.b The GPUs
bandwidth to local memory is an order of magnitude higher, more than
30x in current systems, than the PCIe
bandwidth to the memory on the host.
Hybrid GPUs are integrated on the
same die with the host CPU and share
the same physical memory with CPUs.
Here, we focus on discrete GPUs but
also discuss our work in the context of
hybrid GPUs.
GPU Programming
Despite their popularity in high-performance and scientific computing, using
GPUs to accelerate general-purpose
applications in commodity systems
is quite limited. The list of 200 popular general-purpose GPU applications
published by Nvidia14 makes no mention of GPU-accelerated real-time virus
scanning, text search, or other desktop
services, though GPU algorithms for
b Discrete GPUs traditionally had a separate
address space that could not be referenced
directly by CPU programs and required developers to manage nCPU-GPU transfers explicitly; Nvidias CUDA 6 release (February 2014)
introduced runtime support for automatic
data movement.

pattern matching are well known and


provide significant speedups.2,9 Enabling GPUs to access host resources
directly via familiar system abstractions will hasten GPU integration in
widely deployed software systems.
The current GPU programming
model requires application developers build complicated CPU-side code
to manage access to the hosts network
and storage. If an input to a GPU task
is stored in a file, the CPU-side code
handles all system-level I/O functions,
including how much of the file to read
into system memory, how to overlap
data access with the GPU execution,
and how to optimize the size of memory transfer buffers. This code dramatically complicates the design and
implementation of GPU-accelerated
programs, turning application development into a low-level systems programming task.
Historically, operating systems are
instrumental in eliminating or hiding
this complexity from ordinary CPUbased application development. GPUfs
aims to address these same data-management challenges for GPU-based application code.
GPU programming difficulties.
Consider an application that searches a set of files for text patterns. It is
trivial to speed up this task through
multi-core CPUs by, say, scanning
different files in parallel on different cores. Algorithmically, the task is
also a good candidate for acceleration
on GPUs, given the speedups already
demonstrated for pattern-matching
algorithms on GPUs.9
However, using GPUs involves several system-level caveats:
Complex low-level data-management
code. Since GPU code cannot access
files directly, CPU code must assist in
reading the file data and managing
data transfers to the GPU. A substantial part of an overall GPU program is
thus CPU-based code needed to manage data for the GPU. This CPU-based
code must deal with low-level details
of GPU memory allocation and be optimized for the performance characteristics of a specific GPU model to perform data transfers efficiently.
No overlap between data trans
fer and computations. Unlike CPUs,
where operating systems use threads
and device interrupts to overlap data

processing and I/O, GPU code traditionally requires all input to be transferred in full to local GPU memory
before processing starts. Moreover,
the application cannot easily retrieve
partial output from GPU memory until the GPU kernel terminates. Optimized GPU software alleviates these
performance problems through pipelining; it splits inputs and outputs
into smaller chunks and asynchronously invokes the kernel on one
chunk while simultaneously transferring the next input chunk to the GPU
and the prior output chunk from the
GPU. Though effective, pipelining often complicates the algorithm and its
implementation significantly.
Bounded input/output size. If a files
contents are too large to fit into an input buffer in GPU memory, the application must split the input and process it
in smaller chunks, tying the algorithm
to low-level hardware details. The size
of any output buffer for a GPU programs results must be specified when
the program starts, not when it generates its output, further complicating
algorithms that produce unpredictable amounts of output. To ensure adequate buffer space, a common practice
among developers is to allocate overly
large buffers, making inefficient use of
GPU memory.
No support for data reuse. A CPU application deallocates all its GPU-side
memory buffers holding file contents
when it terminates; for example, a
pattern-matching application might
read many input files, but, when invoked again, the files are read again
from CPU memory or disk. In contrast,
CPU applications rely on the operating
systems buffer cache to transparently
protect them from expensive redundant reads.
No support for data-dependent ac
cesses. A programs inputs can depend
on its execution history; for example, a
program might search for a string in an
HTML file, as well as in any file referenced by the HTML file. The names of
files that must be searched are known
only during execution because they
depend on the link structure within
the HTML files themselves. A CPU
implementation might read the next
input file the moment it encounters a
reference to that file. However, in GPU
code, the file-reading logic occurs on

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

71

contributed articles
the CPU separate from the GPU-based
processing code. The applications
CPU and GPU code must therefore coordinate explicitly to determine which
files to read next.
GPUfs makes GPU programming
easier. GPUfs was developed to alleviate these problems. GPUfs is a software
layer providing native support for accessing host files on discrete GPUs.
GPUfs allows tasks running on GPUs
to be largely oblivious as to where data
is located, whether on disk, in main
memory, in a GPUs local memory, or
across several GPUsa convenience
offered for CPU programs by standard
file system services. Moreover, GPUfs
lets the operating system optimize data
access locality across independently
developed GPU compute modules using application-transparent caching,
much like a traditional operating systems buffer cache optimizes access
locality across multi-process compu-

tation pipelines. A familiar file API


abstracts away the low-level details of
different GPU hardware architectures
and their complex inter-device memory consistency models, thus improving code and performance portability.
Finally, programmers using GPUfs can
build self-sufficient GPU applications
without having to develop the complex
CPU support code required to feed
data to GPU computations.
We view GPUfs as GPU system-level
code, but modern GPUs do not support a publicly documented privileged
mode. GPUfs cannot therefore run in
privileged mode on the GPU, and our
GPUfs prototype is a library linked with
the application. However, the library is
structured in two layers, with the top
layer intended to remain a library; the
bottom layer would execute in privileged mode when GPUs add such a
capability. We expect GPU vendors will
eventually provide some combination

Figure 1. GPUfs architecture.

CPU

GPU

Unchanged applications
using host OS file API

GPU application
using GPUfs file API

GPUfs hooks

GPUfs GPU
file I/O library

OS file system interface


GPUfs distributed buffer cache
(Page cache)
CPU memory

GPU memory

of software and hardware support for


executive-level software, to, for example, explicitly manage memory permissions across multiple GPU kernels.
The host operating system and the
GPU operating-system-level code work
together to provide a single file system
shared across all processors in the system, though with some semantics that
are more like a distributed file system.
In contrast, current GPU-like accelerators (such as Intels Xeon-Phi) run an
independent operating system that
supports only block-level exclusive access to storage or distributed-systems
protocols to communicate with the
host operating system. The GPUfs approach results in a system that is easier
to use, enables whole-system optimizations like scheduling of data transfers,
and provides finer control of shared resources (such as system memory).
Design
Here, we describe the GPUfs API and
file-system semantics, focusing on the
similarities to and differences from
the standard APIs used in CPU programs and the properties of GPUs that
motivate these design choices; we omit
details of some APIs, though they are
included in Silberstein et al.20
Figure 1 outlines the architecture of
GPUfs. CPU programs are unchanged,
but GPU programs can access the
hosts file system through a GPUfs library linked to the applications GPU
code. The GPUfs library works with the
host operating system on the CPU to
coordinate the file systems namespace
and data.
Three properties of discrete GPUs

Table 1. Implications of GPU hardware characteristics on GPUfs design.

72

Behavior on CPU

GPU hardware characteristics

GPUfs design implications

Buffer cache

Caches file contents in CPU memory to hide


disk access latency

Separate physical memory

Caches file contents in GPU memory to hide


accesses to disks and CPU memory

File system data


consistency

Strong consistency; file writes are immediately visible to all processes

Slow CPU-GPU communications

Close-to-open consistency; file writes are


immediately visible to all GPU local threads
but require explicit close and open to be visible on another processor

Cache replacement Approximate LRU invoked asynchronously


algorithm
and periodically in a background thread

Non-preemptive hardware scheduling

Synchronous and fast but inaccurate

API call
granularity

File APIs are called independently in every


thread

Data-parallel lockstep execution of threads


in a warp

File APIs are invoked collaboratively by all


threads in the same warp

File descriptors

Each descriptor is associated with a file


pointer

Massive data parallelism

No file pointers at OS level, but library supports per-warp or per-threadblock local file
descriptors

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

contributed articles
make designing GPUfs a challenge:
massive hardware parallelism; a fast
and separate physical memory; and
non-preemptive hardware scheduling.
Table 1 lists their implications for the
design of GPUfs, with analysis following in this section.
Buffer cache for GPUs. Operating
systems strive to minimize slow disk
accesses by introducing a buffer cache
that stores file contents in memory
when file data is first accessed. The operating system serves subsequent accesses directly from the buffer cache,
thereby improving performance transparently to applications. Moreover,
a buffer cache enables whole-system
performance optimizations, most notably read-ahead, data-transfer scheduling, asynchronous writes, and data
reuse across process boundaries.
Imagine a GPU program accessing
a file. Even if the file data is resident
in the CPU buffer cache, it must be
transferred from CPU memory to the
local GPU memory for every program
access. However, GPUs provide far
more bandwidth and lower latencies
to access local GPU memory than to access the main CPU memory. To achieve
high performance in GPU programs it
is thus critical to extend GPUfs buffer
cache into GPUs by caching file contents in GPU memory. In multi-GPU
systems the buffer cache spans multiple GPUs and serves as an abstraction hiding the low-level details of the
shared I/O subsystem.
File system data consistency. An
important design question we faced
in developing GPUfs is the choice of
a file system data-consistency model
(how and when file updates performed
by one processor are observed by other
processors in a system); for example,
if a file is cached by one GPU and then
changed by another GPU or a CPU,
cached data then becomes stale and
must be refreshed by a consistency
mechanism. Strong consistency models (such as sequential consistency)
permit no or little disparity in the order different processes observe update; for example, in Linux, file writes
executed by one process become immediately visible to all other processes
running on the same machine. On the
other hand, the popular Network File
System (NFS) provides no such guarantee if processes are running on differ-

Figure 2. Close-to-open file system data consistency in GPUfs.

open()

read()

read()

GPU1
May not be visible to GPU1
GPU2

write(1)

close()

ent machines. In general, distributed


file systems like NFS tend to provide
weaker consistency than local file systems, as weaker consistency permits
less-frequent data synchronization
among caches and is thus more efficient in systems with higher communication costs.
GPUfs is a local file system in the
sense it is used by processors in the
same physical machine. However, the
disparity between the bandwidth from
GPU to system memory and to local
GPU memory makes the system more
like a distributed environment with a
slow communication network than a
tightly coupled local environment.
GPUfs implements a weak file-system data-consistency model (closeto-open consistency) similar to the
Andrew File System3 and NFS clients
(since Linux 2.4.20). When a files content is cached on a GPU, its threads can
read and write the file locally without
further communication with other processors, even if the host and/or other
GPUs concurrently read and/or modify
that file. GPUfs guarantees local file
changes propagate to other processors
when the file is closed on the modifying processor first and subsequently
opened on other processors. In Figure
2, GPU2 writes two different values to
a file, 1 and 2. However, GPU1 will
see 1 and may not see 2, as close-toopen consistency permits postponing
updates to other processors operating
on the same file instead of propagating
them as they happen.
For the GPU threads running on
the same GPU, GPUfs provides strong
consistency, guaranteeing file updates
are visible immediately to all threads
in that GPU. To achieve this guarantee, memory writes explicitly bypass
the L1 cache via write-through L2 write
instructions and are followed by a
memory fence. We found the overhead

open()

write(2)

of doing so sufficiently small to make


such a strong consistency model affordable. However, if a file is mapped
using mmap, GPUfs naturally inherits
the memory-consistency model implemented by the hardware.
Buffer cache management. CPUs
handle
buffer-cache-management
tasks in daemon threads, keeping
costly activities like flushing modified
dirty pages out of an applications
performance path. Unfortunately,
GPUs have a scheduling-related weakness that makes daemon threads inefficient. GPU threadblocks are non-preemptive, so a daemon thread would
require its own permanently running
threadblock. This dedicated threadblock could be either an independent, constantly running GPU kernel
or part of each GPU application. Each
approach permanently consumes a
portion of GPU hardware resources,
thereby degrading the performance of
all GPU applications, including those
not using GPUfs.
Alternatively, offloading all GPU
cache-management functionality to a
CPU daemon is impractical on existing
hardware due to the lack of atomic operations over a PCIe bus.c This limitation precludes use of efficient one-sided communication protocols. A CPU
cannot reliably lock and copy a page
from GPU memory without GPU code
being involved in acknowledging the
page has been locked. Consequently,
GPUfs uses a less efficient messagepassing protocol for synchronization.
Organizing GPUfs without daemon threads has important design
consequences, including the need
to optimize the page replacement algorithm for speed. GPUfs performs
c The PCIe 3.0 standard includes atomics, but
implementation is optional and we know of
no hardware supporting it.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

73

contributed articles
page replacement as a part of regular read/write file operations, with
the GPUfs code hijacking the calling
thread to perform the operation. The
call is often on the critical path, so reducing the latency of the replacement
algorithm is important for maintaining system performance. However,
it is unclear how to implement standard replacement mechanisms (such
as the clock algorithm17), as they require periodic scanning of all pages
in use. Performing the scan as part of
the file system operations is aperiodic
and expensive. The GPUfs prototype
instead implements a simple heuristic that evicts a page with the oldest
allocation time. While it works well
for streaming workloads, the best replacement policy across diverse workloads is an area for future work.
Although GPUfs must invoke the replacement algorithm synchronously,
writing modified pages from the GPU
memory back to the CPU can be done
asynchronously. GPUfs enqueues dirty
pages in a ring buffer it shares with the
CPU, so the CPU can asynchronously
complete the transfer. This single-producer, single-consumer pattern does
not require atomic operations.
GPUfs API. Not apparent is whether
the traditional single-thread CPU API
semantics is necessary or even appropriate for massively parallel GPU programs. Consider a program with multiple threads accessing the same file. On
a CPU, each thread that opens a file obtains its own file descriptor and accesses the file independently from other
threads. The same semantics on a GPU
would result in tens of thousands of file
descriptors, one for each GPU thread.
But such semantics are likely of little
use to programmers, as they do not
match a GPUs data-parallel programming idioms and hardware-execution
model.
The key observation is that GPU and
CPU threads have very different properties and are thus used in different
ways in programs.
A single GPU thread is slow. GPUs
are fast when running many threads
but drastically slower when running
only one; for example, multiplying a
vector by a scalar in a single thread is
about two orders of magnitude slower
on a C2070 TESLA GPU than on a Xeon
L5630 CPU. GPUs invoke thousands of
74

COM MUNICATIO NS O F TH E AC M

threads to achieve high throughput.


Threads in a warp execute in lockstep.
Even though GPU threads are independent according to the programming
model, the hardware executes threads
in SIMD groups, or warps. The threads
in the same warp are executed in lockstep. Processing is efficient when all
threads in a warp follow the same code
paths but highly inefficient if they follow divergent paths; all threads must
explore all possible divergent paths together, masking instructions applicable to only some threads at every execution step. Likewise, memory hardware
is optimized for a warp-strided access pattern in which all warp threads
jointly access a single aligned memory
block; the hardware coalesces multiple accesses into a single large memory transaction to maximize memory
throughput.
As a result, GPU programs are typically designed to execute a task collaboratively in a group of threads (such as
a warp or a threadblock) rather than
in each thread separately. In such a
group, all threads execute data-parallel
code in a coordinated fashion. Dataparallel file API calls might thus be
more convenient to use than the traditional per-thread API in CPU programs.
Moreover, per-thread file API calls
would be highly inefficient; their implementations are control-flow heavy
and require synchronization on globally shared data structures (such as a
buffer cache) and often involve large
memory copies between system and
user buffers, as in write and read. If
GPUfs allowed API calls at thread granularity, the threads would thus quickly
encounter divergent control and data
paths within GPUfs, resulting in hardware serialization and inefficiency in
the GPUfs layer.
GPUfs consequently require applications to invoke the file system API
at threadblockrather than thread
granularity. All application threads in
a threadblock must invoke the same
GPUfs call, with the same arguments,
at the same point in application code.
These collaborative calls together
form one logical GPUfs operation. The
threadblock granularity of the API allows the GPUfs implementation to parallelize the handling of API calls across
threads in the invoking threadblock
like performing table search opera-

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

tions in parallel. GPUfs also supports a


more fine-grain per-warp API granularity of function calls. In it the code relies
on lockstep execution of the warps
threads because the hardware does
not provide intra-warp synchronization primitives. However, making this
assumption is generally discouraged
because intra-warp scheduling could
change in future GPU architectures.
We find per-threadblock calls to be
more efficient than per-warp calls and
sufficient for the GPUfs applications
we have implemented.
Layered API design. File descriptors
in GPUfs are global to a GPU kernel,
just as they are global to a CPU process.
Each GPU open returns a distinct file
descriptor available to all GPU threads
that must be closed with close. This
design allows a file descriptor to be
initialized only once, then reused by
all other GPU threads, thereby saving the slow CPU file system accesses.
Unfortunately, implementing such
globally shared objects on a GPU is
nontrivial due to the lack of GPU-wide
barriers and subtleties of the GPU
memory model.
GPUfs balances programmer convenience with implementation efficiency
by layering its API. The open call on
the GPU is wrapped into a library function gopen that may return the same
file descriptor when given the same
file name argument. GPUfs reference
counts these calls, so a gopen on an
already open file just increments the
files open count without CPU communication. In our experiments with
GPUfs, we have found gopen to be
more convenient and efficient than the
low-level GPU open call.
Likewise, GPUfs removes the file
pointer from the global file-descriptor
data structure to prevent its update
from becoming a serialization bottleneck. GPUfs implements a subset of
POSIX file system functionality by providing, for example, the pread and
pwrite system calls that take an explicit file offset parameter.
However, the GPUfs library gives
programmers a high-level abstraction of per-threadblock or per-warp
file pointers. A programmer can thus
choose to program to the low-level
pread interface or initialize a local file
offset and make calls to the more familiar read interface. This division of

contributed articles
labor is similar to the division on a CPU
between system calls like read and C
library functions like fread.
File mapping. GPUfs allows GPU
threads to map portions of files directly into local GPU memory via gmmap/
gmunmap. As with traditional mmap,
file mapping offers two compelling
benefits: the convenience to applications of not having to allocate a buffer
and separately read data into it and opportunities for the system to improve
performance by avoiding unnecessary
data copying.
Full-featured
memory-mapping
functionality requires software-programmable hardware virtual memory
unavailable in current GPUs. Even in
future GPUs that might offer such control, traditional mmap semantics might
be difficult to implement efficiently in
a data-parallel context. GPU hardware
shares control-plane logic, including
memory management, across compute
units running thousands of threads simultaneously. Any translation change
thus has global impact likely requiring
synchronization too expensive for finegrain use within individual threads.
GPUfs offers a more relaxed alternative to mmap, permitting more
efficient implementation without
frequent translation updates. GPUfs
provides no guarantee gmmap will
map the entire file region the application requests; it could instead map
only a prefix of the requested region
and return the size of the successfully
mapped prefix. Moreover, gmmap is
not guaranteed to succeed when the
application requests a mapping at a
particular address, so MMAP _FIXED
might not work. Finally, gmmap does
not guarantee the mapping will have
only the requested permissions; mapping a read-only file could return a
pointer to read/write memory, with
GPUfs trusting the GPU kernel to not
modify that memory.
These looser semantics ultimately
enable efficient implementation on
the existing hardware by allowing
GPUfs to give the application pointers
directly into GPU-local buffer cache
pages, residing in the same address
space (and protection domain) as the
applications GPU code.
Failure semantics. GPUfs has failure semantics similar to the CPU page
cache; on GPU failure, file updates not

GPUfs is
a system software
co-resident with
GPU programs
but is less intrusive
than a complete
operating system
in that it has
no active
continuously
running
components
on the GPU.

yet committed to disk could be lost.


From the applications perspective,
successful completion of gfsync or
gmsync ensures data has been written
to the host buffer cache and, if requested, to stable storage. While a successful completion of gclose in all GPU
threads guarantees another processor
reopening the file will observe consistent updates, it does not guarantee the
data has been written to disk or even
to the CPU page cache, as the transfers
might be performed asynchronously.
Unfortunately, in existing systems,
a GPU program failure (due to, for example, an invalid memory access or
assertion failure) could require restarting the GPU card. As a result, the entire GPU memory state of all resident
GPU kernels would be lost, including
GPUfs data structures shared across
all of them. This lack of fault isolation
between GPU kernels makes maintaining long-living operating system data
structures in GPU memory impractical. As GPUs continue to be more general purpose, we expect GPU hardware
and software to provide better fault isolation and gain more resilience to software failures.
Resource overheads. Operating
systems are known to compete with
user programs for hardware resources
like caches and are often blamed for
diminished performance in high-performance computing environments.
GPUfs is a system software co-resident
with GPU programs but is less intrusive
than a complete operating system in
that it has no active continuously running components on the GPU. GPUfs
follows a pay-as-you-go design; that
is, it imposes no overhead on GPU kernels that use no file system functionality. We deliberately avoided design alternatives involving daemon threads,
or persistent GPU threads dedicated
to file system management tasks like
paging and CPU-GPU synchronization.
While enabling more efficient implementation of the file system layer, such
threads would violate this principle.
However, GPUfs unavoidably adds
some overhead in the form of memory
consumption, increased program instruction footprint, and use of GPU
hardware registers. We expect the
relative effect of these overheads on
performance to decrease with future
hardware generations providing larger

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

75

contributed articles
memory, register files, and instruction
caches.
Discussion. With GPU hardware
changing so rapidly, a key design challenge for GPUfs is to focus on properties likely to be essential to the performance of future, as well as current,
GPUs. Current technological trends
(such as a constantly increasing oncard memory capacity and bandwidth,
as well as increasing fine-grain hardware parallelism) suggest the non-uniform memory performance and structured fine-grain parallelism of todays
GPUs will persist as GPU architectures
evolve. We expect data parallel API semantics and locality optimized caching in GPUfs, being motivated by these
hardware characteristics, will thus remain important design features in future GPU systems software.
However, some of our GPUfs design choices were dictated by po-

tentially transient constraints of the


current hardware and software, as
in the case of a synchronous buffer
cache replacement algorithm, gmmap
limitations, and lack of buffer cache
memory protection; for example, the
replacement algorithm could be improved by offloading it to a CPU outside the critical path, provided the
hardware support for atomics across
PCI Express. While these aspects of
the GPUfs design could potentially
become obsolete, they could still influence hardware designers to include
the necessary architectural support
for efficient operating system abstractions in next-generation accelerators.
Implementation
Here, we describe our GPUfs prototype
for Nvidia Fermi and Kepler GPUs.
Most of GPUfs is a GPU-side library
linked with application code. The CPU-

Figure 3. A simplified GPU string search implementation using GPUfs; the names of the
variables shared across all GPU threads are prefixed with g and those shared across
only a single threadblock (TB) with tb.

side portion consists of an operating


system kernel module for buffer cache
consistency management and a userlevel thread in the host application, giving GPUfs access to the applications
GPU state and host resources.
GPU buffer cache pages. GPUfs manages its buffer cache at the granularity
of an aligned power-of-two-size memory page that can differ in size from
the hardware-supported page. Performance considerations typically dictate
page size larger than the standard 4KB
operating system-managed pages on
the host CPU (such as 256KB).
Lock-free buffer cache. The buffer
cache uses a radix tree that can be a
contention point among threads accessing the same file. GPUfs uses lockless reads and locked updates, similar
to Linuxs seqlocks.21 Specifically, readers access the tree without locks or
memory atomics but may need retry
if the tree is concurrently modified by
a writer.
GPU-CPU RPC mechanism. GPUfs
implements an RPC protocol to coordinate data transfers between CPU and
GPU. The GPU serves as a client that
issues requests to a file server running
on the host CPU. This GPU-as-client
design contrasts with the traditional
GPU-as-coprocessor
programming
model, reversing the roles of CPU and
GPU. Implementing RPC protocol efficiently is complicated by the CPU/
GPU memory consistency model. For
arbitrary file contents to be accessible
from a running GPU kernel, a GPU and
a CPU must be able to access shared
memory and provide the means to enforce a global write order (such as via
memory fences). Only Nvidia GPUs officially provide this functionality (as of
December 2014).d
File consistency management. The
current prototype implements the locality-optimized file-consistency model described earlier. If a GPU is caching
the contents of a closed file, this cache
must be invalidated if the file is opened
for write or unlinked by another GPU
or CPU. GPUfs propagates such invalidations lazily; that is, only if and when
the GPU caching this stale data later red OpenCL 2.0 will enable GPU-CPU RPC via
shared virtual memory, though no implementation is publicly available as of December 2014.

76

COMM UNICATIO NS O F THE AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

contributed articles
opens the file. The GPUfs API currently
offers no direct way to push changes
made on one GPU to another GPU, except when the latter reopens the file.
Implementation limitations. GPUfs
implements a private GPU buffer cache
for each host CPU process; the buffer
cache is not shared across host applications, as it is in the operating systemmaintained buffer cache on the host
CPU. Unfortunately, GPUs still lack
the programmable memory protection
necessary to protect a shared GPUfs
buffer cache from errant host processes or GPU kernels. We anticipate the
necessary protection features will become available in newer GPUs.
Lack of user-controlled memory
protection also means GPUfs cannot
protect its GPU buffer caches from corruption by the application it serves.
However, GPUfs uses the host operating system to enforce file-access protection. The host operating system
prevents a GPUfs application from
opening host files the application does
not have permission to access and denies writes of dirty blocks back to the
host file system if the GPUfs application has opened the file read-only.
Our prototype does not yet support
directory operations.
Evaluation
We implemented GPUfs for Nvidia
Fermi and Kepler GPUs and evaluated its utility and performance with
micro-benchmarks and realistic I/Ointensive applications, finding GPUfs
enabled simpler application design
and implementation and resulted in
high application performance on par
with fine-tuned, handwritten versions
not using GPUfs. The complete results
of the evaluation are in our prior publications,19,20 and the source code of the
benchmarks and the GPUfs library is
available for download.18
Here, we outline an example of a
string-search GPU application to illustrate a typical use of GPUfs. Given
a dictionary and a set of text files, for
each word in the dictionary, the program determines how many times
and in which files the word appears.
This workload is an example of a
broad class of applications performing a full input scan, like n-gram
generation or index-free search in
databases.10 One challenge in imple-

menting such applications without


GPUfs is unknown, potentially large
output size, usually requiring preallocation of large amounts of memory
to avoid buffer overflow. GPUfs eliminates this problem by writing the output directly to a file.
In our string-search implementation we chose a simple algorithm
where each threadblock opens one file
at a time; each thread then scans the
file for a subset of the dictionary it is
allocated to match. This workload puts
pressure on GPUfs because most files
are small (a few kilobytes on average),
leading to frequent calls to gopen and
gclose.
Figure 3 is a high-level sketch of
the self-contained GPU program used
in this experiment. The program does
not require CPU code development.
For simplicity, it handles only a single
input file and does not include details
of the string-matching algorithm. The
code is executed in every GPU thread,
but the threads of a given threadblock
obtain the unique set of search words
by calling the getTBWords function.
Threads in the same threadblock collaboratively fetch a chunk of the input file, scan through it, write the
output, and continue until the file is
fully scanned. Note if the file fits in
the GPUfs buffer cache, only the first
threadblock will effectively access the
disk, while all others will fetch data directly from the GPU buffer cache without CPU communication.
The code structure is similar to a
standard CPU implementation. Developers require no special expertise in
low-level system programming; they
may thus focus entirely on optimizing
the parallel string search algorithm.
This implementation demonstrates
one important property shared by all
applications in our GPUfs benchmarking suite: the GPUfs implementation
requires almost no CPU code development, as functionality resides entirely
in the GPU kernel. For all workloads

in the benchmarking suite, the CPU


code is identical, save the name of the
GPU kernel to invoke. This is a remarkable contrast to standard GPU development, which always requires substantial CPU programming effort. We
found that eliminating CPU code made
development easier.
We ran two experiments with this
code counting the frequency of modern English words in two datasets: the
works of William Shakespeare and
the Linux kernel source code. We invoked the string search benchmark
with a dictionary of 58,000 modern
English wordse within the complete
works of Shakespeare as a single 6MB
text filef and within the Linux 3.3.1 kernel source containing approximately
33,000 files holding 524MB of data.
The list of input files was itself specified in a file.
As a point of reference we compare
two other implementations: a simple
CPU program performing the same
task on eight cores using OpenMP and
a vanilla GPU version implemented
without GPUfs. Both implementations
prefetch the contents of the input files
into a large memory buffer first and do
not read from the file system during the
matching phase. The vanilla GPU version supports only inputs and outputs
that fit in the GPUs physical memory.
In contrast, the GPUfs implementation
has no such limitations.
We performed the evaluation on a
SuperMicro server with two four-core
Intel Xeon L5630 CPUs and Nvidia
C2075 GPU (see Table 2). Even for
such a file-system-intensive workload,
a single GPU outperforms the eightcore CPU by 6.8x. The GPUfs version
performance was similar to the vanilla
GPU implementation on one large input file, with the GPUfs version only
9% slower than the vanilla one on the
Linux kernel input. However, GPUfse http://www.mieliestronk.com/wordlist.html
f http://www.gutenberg.org/ebooks/100

Table 2. GPU string-search performance.

Input

CPUx8

GPU-GPUfs

GPU-vanilla

Linux source

6.1h

53m (6.8)

50m (7.2)

Shakespeare

292s

40s (7.3)

40s (7.3)

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

77

contributed articles
based code was approximately half the
length of the vanilla version.
Discussion
We have advocated for providing standard operating system services and abstractions on GPUs to facilitate their
harmonious integration with the rest
of the computer system. Such integration is the key to broader adoption of
GPUs now and in the future. Our work
designing GPUfs marks yet another
turn of the wheel of reincarnation,11
demonstrating inevitable evolution of
GPUs toward providing more generalpurpose functionality. We implemented a file system for discrete GPUs to
demonstrate the feasibility and value
of this goal on real GPU hardware.
This work also has limitations. We
have focused primarily on a file-system
layer that might not reflect the challenges and trade-offs in other operating system services on GPUs. The main
design principles underpinning the
GPUfs file system layer design are general, as they address the core characteristics of GPU hardware: massive parallelism, slow sequential execution, and
NUMA memory organization. Indeed,
we found them equally applicable to
the design of a networking layer for
GPUs, as described by Kim et al.7
GPUfs makes standard system abstractions and interfaces commonly
used in CPU systems available on
GPUs, but such abstractions might
not be the most suitable for GPU programs. Prior work cast the GPU as a
coprocessor, with the CPU managing
the interaction between the GPU and
the rest of the system. As a result, the
bulk of GPU research has focused on
devising new CPU-side abstractions to
make this interaction easier to manage; for example, flow graph execution frameworks like PTask16 facilitate
development of complex applications
but treat GPU tasks as opaque monolithic execution units. In contrast, we
propose to give a GPU program the
flexibility of managing its own input
and output data. In our experience,
using the familiar CPU file system abstractions and API adapted to suit GPU
programming idioms is a natural and
convenient way to provide I/O functionality to GPU programs.
This work targets discrete GPUs
and does not directly address emerg78

COMM UNICATIO NS O F THE AC M

Our work designing


GPUfs marks
yet another turn
of the wheel of
reincarnation,
demonstrating
inevitable evolution
of GPUs toward
providing more
general-purpose
functionality.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

ing hybrid processor architectures


like AMD Kaveri and mobile systemon-a-chip that combine CPU and GPU
on the same die. The most recent processors add support for shared physical memory and virtual address space
between CPU and GPU. Communicating through shared memory makes
CPU-GPU data transfers unnecessary,
providing a much faster and easier
way to exchange data between processors. Consequently, tight CPU-GPU
coupling might seem to obviate the
need for the separate system abstraction layer on GPUs we have advocated
here, making sufficient the GPU-ascoprocessor model, with its reliance
on the CPU operating system.
Shared-memory hardware is only
a low-level interface that optimizes
CPU-GPU interaction but does not
eliminate the software complexities
of implementing interactions between the GPU and the rest of the system. As with discrete GPUs, the inability to directly access host resources
from GPU code complicates natural
program design, necessitating CPU
management code to prepare data for
GPU processing. While calling CPU
functions from GPU code becomes
possible with integrated GPUs,1 using
this mechanism to implement file or
network I/O from thousands of GPU
threads would overwhelm the CPU
operating system and thus warrants
explicit handling of massive parallelism on both the GPU and the CPU, as
in GPUfs. Moreover, CPU-GPU coordination requires intimate knowledge
of the memory-consistency semantics
of CPU-GPU shared memory, which
is not only complicated but also constantly evolving, as evident from successive revisions of the OpenCL standard. In contrast, familiar system
abstractions and portable, platformoptimized APIs hide these and other
low-level details and naturally facilitate code development on hybrid architectures, as they do in CPUs and
discrete GPUs.
Discrete GPUs remain relevant. We
expect discrete and integrated GPUs
will continue to coexist for years to
come. They embody different tradeoffs among power consumption,
production costs, and system performance, and thus serve different
application domains. Discrete GPUs

contributed articles
have consistently shown performance
and power-efficiency growth over the
past few hardware generations. This
growth is facilitated by discrete GPUs
residing on a standalone, add-on
peripheral device, giving designers
much greater hardware design flexibility than integrated systems. The
aggressively throughput-optimized
hardware designs of discrete GPUs
rely heavily on a fully dedicated,
multibillion-transistor budget, tight
integration with specialized highthroughput memory, and increased
thermal design power. As a result,
discrete GPUs offer the highest compute performance and compute performance per watt, making them the
computational accelerator of choice
in data centers and supercomputers.
In contrast, hybrid GPUs are allocated only a small fraction of the silicon and power resources available to
discrete processors and thus offer an
order-of-magnitude-lower computing capacity and memory bandwidth.
Discrete architectures have been
so successful that manufacturers continue to migrate functions to the GPU
that previously required CPU-side
code; for example, Nvidia GPUs support nested parallelism in hardware,
allowing invocation of new GPU kernels from GPU code without first stopping the running kernel. Similarly,
modern GPUs provide direct access
to peripheral devices (such as storage
and network adapters), eliminating
the CPU from the hardware data path.
Future high-throughput processors5
are expected to enable more efficient
sequential processing.
Indications of this trend are already apparent; for example, the
AMD Graphics Core Next 1.1 used
in all modern AMD GPUs contains a
scalar processing unit. In addition,
Nvidia and IBM announced (November 2013) a partnership that aims to
integrate Nvidia GPUs and IBM Power
CPUs targeting data-center environments. These trends reinforce the
need for high-level services on GPUs
themselves. Besides making GPUs
easier to program, these services will
naturally exploit emerging hardware
capabilities and avoid performance
and power penalties of switching between the CPU and the GPU to perform I/O calls.

Intels Xeon-Phi represents an extreme example of GPUs gaining more


CPU-like capabilities. Xeon-Phi shares
many conceptual similarities with discrete GPUs (such as slow sequential
performance and fast local memory).
However, it uses more traditional CPU
cores and runs a full Linux operating
system, providing a familiar execution environment for the programs it
executes. Xeon-Phis software architecture supports standard operating
system services. However, the current
Xeon-Phi system does not allow efficient access to host files and network,
and programmers are encouraged to
follow a more traditional coprocessor programming model, as in GPUs.
The recently announced next processor generation, Knights Landing, is
expected to serve as the main system
CPU, eliminating the host-accelerator
separation. The new processor memory subsystem will include high-bandwidth, size-limited 3D stacked memory. We expect this stacked memory
will have exaggerated NUMA properties, though the ideal system stack
design on such memory remains to
be seen. Meanwhile, many aspects of
GPU system abstractions described
here (such as NUMA-aware file cache
locality optimizations) will be relevant
to the coming and future generations
of these processors.
GPU productivity efforts. Recent developments in GPU software make
it much easier for programmers to
accelerate computations on GPUs
without writing any GPU code. Commercially available comprehensive
STL-like libraries of GPU-accelerated
algorithms,13 efficient domain-specific
APIs,11 and offloading compilers12 parallelize and execute specially annotated loops on GPUs.
These and other GPU productivity
projects use the GPU as a coprocessor and passive consumer of data. Applications that must orchestrate data
movement are cumbersome for programmers to implement because GPU
code cannot perform I/O calls directly.
Systemwide support for operating
system services, as demonstrated by
GPUfs, alleviates this basic constraint
of the programming model and could
benefit many GPU applications, including those developed with the help
of other GPU productivity tools.

References
1. Bratt, I. HSA Queuing. Hot Chips 2013 tutorial, 2013;
http://www.slideshare.net/hsafoundation/hsaqueuinghot-chips-2013
2. Han, S., Jang, K., Park, K., and Moon, S. PacketShader:
A GPU-accelerated software router. SIGCOMM
Computer Communication Review 40, 4 (Aug. 2010),
195206.
3. Howard, J.H., Kazar, M.L., Menees, S.G., Nichols, D.A.,
Satyanarayanan, M., Sidebotham, R.N., and West, M.J.
Scale and performance in a distributed file system.
ACM Transactions on Computing Systems 6, 1 (Feb.
1988), 5181.
4. Kato, S., McThrow, M., Maltzahn, C., and Brandt, S.
Gdev: First-class GPU resource management in the
operating system. In Proceedings of the USENIX
Annual Technical Conference (Boston, June 1315).
USENIX Association, Berkeley, CA, 2012.
5. Keckler, S.W., Dally, W.J., Khailany, B., Garland, M., and
Glasco, D. GPUs and the future of parallel computing.
IEEE Micro 31, 5 (Sept.-Oct. 2011), 717.
6. Khronos Group. The OpenCL Specification, 2013;
https://www.khronos.org/opencl/
7. Kim, S., Huh, S., Hu, Y., Zhang, X., Wated, A., Witchel, E.,
and Silberstein, M. GPUnet: Networking abstractions
for GPU programs. In Proceedings of the International
Conference on Operating Systems Design and
Implementation (Broomfield, CO, Oct. 68). USENIX
Association, Berkeley, CA, 2014.
8. Kirk, D.B. and Hwu, W.-m. Programming Massively
Parallel Processors: A Hands-On Approach. Morgan
Kaufmann, San Francisco, 2010.
9. Lehavi, D. and Schein, S. Fast RegEx parsing on GPUs.
Presentation at NVIDIA Global Technical Conference
(San Jose, CA, 2012); http://on-demand.gputechconf.
com/gtc/2012/presentations/S0043-GTC2012-30xFaster-GPU.pdf
10. Mostak, T. An Overview of MapD (Massively Parallel
Database). Technical Report. Map-D, 2013; http://
www.map-d.com/docs/mapd-whitepaper.pdf
11. Myer, T.H. and Sutherland, I.E. On the design of
display processors. Commun. ACM 11, 6 (June 1968),
410414.
12. Nvidia. GPU-Accelerated High-Performance Libraries;
https://developer.nvidia.com/gpuaccelerated-libraries
13. Nvidia. Nvidia Thrust library; https://developer.nvidia.
com/thrust
14. Nvidia. Popular GPU-Accelerated Applications; http://
www.nvidia.com/object/gpu-applications.html
15. The Portland Group. PGI Accelerator Compilers
with OpenACC Directives; http://www.pgroup.com/
resources/accel.htm
16. Rossbach, C.J., Currey, J., Silberstein, M., Ray, B., and
Witchel, E. PTask: Operating system abstractions to
manage GPUs as compute devices. In Proceedings
of the 23rd ACM Symposium on Operating Systems
Principles (Cascais, Portugal, Oct. 2326). ACM Press,
New York, 2011, 233248.
17. Silberschatz, A., Galvin, P.B., and Gagne, G. Operating
Systems Principles. John Wiley & Sons, Inc., New
York, 2008.
18. Silberstein, M. GPUfs home page; https://sites.google.
com/site/silbersteinmark/Home/gpufs
19. Silberstein, M., Ford, B., Keidar, I., and Witchel, E.
GPUfs: Integrating file systems with GPUs. In
Proceedings of the 18th International Conference on
Architectural Support for Programming Languages
and Operating Systems (Houston, Mar. 1620). ACM
Press, New York, 2013, 485498.
20. Silberstein, M., Ford, B., Keidar, I., and Witchel, E.
GPUfs: Integrating file systems with GPUs. ACM
Transactions on Computer Systems 32, 1 (Feb. 2014),
1:11:31.
21. Wikipedia. Seqlock; http://en.wikipedia.org/wiki/Seqlock
Mark Silberstein (mark@ee.technion.ac.il) is an assistant
professor in the Department of Electrical Engineering
at The Technion Israel Institute of Technology,
Haifa, Israel.
Bryan Ford (bryan.ford@yale.edu) is an associate
professor in the Department of Computer Science at
Yale University, New Haven, CT.
Emmett Witchel (witchel@cs.utexas.edu) is an associate
professor in the Department of Computer Science at the
University of Texas at Austin.

2014 ACM 0001-0782/14/12 $15.00

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

79

review articles
DOI:10.1145/ 2629559

HACs offer a new science for exploring the


computational and human aspects of society.
BY N.R. JENNINGS, L. MOREAU, D. NICHOLSON, S. RAMCHURN,
S. ROBERTS, T. RODDEN, AND A. ROGERS

Human-Agent
Collectives
come a long way from its initial
role as a scientific tool in the research lab. We
live in a world where a host of computer systems,
distributed throughout our physical and information
environments, are increasingly implicated in our
everyday actions. Computer technologies impact
all aspects of our lives and our relationship with
the digital has fundamentally altered as computers
have moved out of the workplace and away from the
desktop. Networked computers, tablets, phones
and personal devices are now commonplace, as are
an increasingly diverse set of digital devices built
into the world around us. Data and information is
generated at unprecedented speeds and volumes from
an increasingly diverse range of sources and via ever
more sensor types. It is then combined in unforeseen
ways, limited only by human imagination. Peoples
activities and collaborations are becoming ever more
dependent upon and intertwined with this ubiquitous
information substrate.
As these trends continue apace, it is becoming
apparent that many endeavors involve the symbiotic
interleaving of humans and computers. Moreover,

T H E COM PU TER H AS

80

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

the emergence of these close-knit partnerships is inducing profound change.


The ability of computer systems to
sense and respond to our ongoing activities in the real world is transforming
our daily lives and shaping the emergence of a new digital society for the
21st century. More specifically, rather
than issuing instructions to passive
machines that wait until they are asked
before doing anything, we are now starting to work in tandem with highly interconnected computational components
that act autonomously and intelligently
(aka agents42). This shift is needed to
cope with the volume, variety, and pace
of the information and services that are
available.
It is simply infeasible to expect individuals to be aware of the full range of
potentially relevant possibilities and
be able to pull them together manually.
Computers need to do more to proactively guide users interactions based
on their preferences and constraints.
In so doing, greater attention must be
given to the balance of control between
people and machines. In many situations, humans are in charge and agents
predominantly act in a supporting role,
providing advice and suggesting options. In other cases, however, agents
are in control and humans play the supporting role (for example, automatic
parking systems on cars and algorith-

key insights
 H ACs are a new class of socio-technical
systems in which humans and smart
software (agents) engage in flexible
relationships in order to achieve both
their individual and collective goals.
Sometimes the humans take the lead,
sometimes the computer does and this
relationship can vary dynamically.

 T here are major scientific challenges that

must be addressed in developing systems


that interact and motivate humans to
work alongside agents in large, dynamic,
and uncertain environments where
privacy and ethical concerns may arise.

 K ey research challenges in HACs

include achieving flexible autonomy


between humans and the software, and
constructing agile teams that conform
and coordinate their activities.

COLL AGE BY A NDRIJ BO RYS ASSOCIATES/ SH UTT ERSTO CK

mic trading on stock markets). Moreover, these relationships may change


during the course of an activity (for example, a human may be interrupted by
a more pressing request and so takes a
less hands-on approach to the current
task or an agent may encounter an unexpected situation and have to ask for
human assistance for a task it was planning to complete autonomously).
We call this emerging class of systems human-agent collectives (HACs)
to reflect the close partnership and the
flexible social interactions between the
humans and the computers. As well as
exhibiting increased autonomy, such
systems are inherently open and social.
This openness means participants need
to continually and flexibly establish and
manage a range of social relationships.
Thus, depending on the task at hand,

different constellations of people, resources, and information must come


together, operate in a coordinated fashion, and then disband. The openness
and presence of many distinct stakeholders, each with their own resources
and objectives, means participation is
motivated by a broad range of incentivesextrinsic (for example, money
or tax-benefit), social or image motivation (for example, public accreditation
or leader-board position) or intrinsic
(for example, personal interest in a social cause, altruism, or hobby2)rather
than diktat. Moreover, once presented
with such incentives, the stakeholders
need to be evaluated and rewarded in
ways that ensure they sustain behaviors
beneficial to the system they partially
form.33
Embryonic examples of future HAC

systems where people routinely and


synergistically interact and collaborate
with autonomous software are starting
to emerge. For example, as we travel,
increasingly interconnected transport
management systems cooperate to
aid our journey. Systems such as Waze
(http://www.waze.com/) blend citizen
and (electronic-) sensor generated content to aid the user. Furthermore, software agents can proactively interact to
arrange a place to stay and somewhere
to eat in accordance with the travelers
preferences and current circumstances.
However, despite relevant work on parts
of the problem in the AI, HCI, CSCW,
and UbiComp communities, it is apparent that developing a comprehensive and principled science for HACs
is a major research challenge, as is the
process by which such systems can be

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

81

review articles
designed and built, and the means by
which HACs will be accepted and deployed in the wild.
What Is Different about
Human-Agent Collectives?
HAC systems exhibit a number of
distinctive features that make it particularly challenging to engineer and
predict their behavior. Their open nature means control and information is
widely dispersed among a large number
of potentially self-interested people and
agents with different aims and objectives. The various system elements exhibit a range of availabilities; some are
persistent and others are transient. The
independent actors need to coordinate
flexibly with people and agents that are
themselves adapting their behaviors
and actions to the prevailing circumstances to best achieve their goals. The
real-world context means uncertainty,
ambiguity, and bias are endemic and
so the agents need to handle information of varying quality, trustworthiness,
and provenance. Thus, techniques are
required to provide an auditable information trail from the point of capture (a
sensor or a human participant), through
the fusion and decision processes, to
the point of action, and the agents will
have to reason about the trust and reputation of their collaborators to take the
best course of action. Finally, in many
cases, it is important that the collective
action of the volitionally participating
actors results in acceptable social outcomes (such as fairness, efficiency, or
stability). When taken together, these
HACs features require us to:
Understand how to provide flexible
autonomy that allows agents to sometimes take actions in a completely autonomous way without reference to humans, while at other times being guided
by much closer human involvement.
Discover the means by which
groups of agents and humans can exhibit agile teaming and come together
on an ad hoc basis to achieve joint goals
and then disband once the cooperative
action has been successful.
Elaborate the principles of incentive engineering in which the actors
rewards are designed so the actions
the participants are encouraged to take
generate socially desirable outcomes.
Design an accountable information
infrastructure that allows the veracity
82

COMMUNICATIO NS O F TH E ACM

and accuracy of seamlessly blended human and agent decisions, sensor data,
and crowd-generated content to be confirmed and audited.
A number of research domains are
beginning to explore fragments of this
overarching vision. However, none of
them is dealing with the totality, nor the
associated system-level challenges. For
example, interacting intelligent agents
are becoming a common means of designing and building systems that have
many autonomous stakeholders, each
with their own aims and resources.9 To
date, much of this work has focused on
systems where all the agents are either
software or hardware (for example, robots or unmanned autonomous systems (UAS)). However, it is increasingly
being recognized that it is both necessary and beneficial to involve humans,
working as active information gatherers and information processors, in concert with autonomous software agents,
within such systems.11,38 For example,
systems have been demonstrated where
humans gather real-world information
and pass it to an autonomous agent
that performs some basic aggregation
before presenting it online.30 Such approaches are often termed participatory
sensing26 or citizen-sensing.15 Likewise,
a number of systems have been demonstrated in which autonomous agents
pass information-processing tasks to
the human participants, then collect
and aggregate the results.40 However,
these broad strands of work typically
assume the authority relations between
humans and agents are fixed and that
there exists a largely static set of skilled
human participants who participate
on a voluntary basis.a This contrasts
with the HAC view of agents operating within a dynamic environment in
which the flexible autonomy varies the
human-agent authority relationships
in a context-dependent manner and in
which these actors individually make
decisions based on their preferences
and the properties of their owners.
In the areas of HCI and CSCW, research has increasingly turned to the
crowd and how to exploit computer
a Amazon Mechanical Turk (AMT), and other
similar systems, is an exception to this in
that it allows software systems to automatically generate Human Intelligence Tasks
and make payments to a large pool of human
participants who complete them.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

systems to harness and coordinate the


endeavors of people.41 Essentially, the
task has been to manage the means
through which people are instructed
and to coordinate their responses in a
manner that makes sense. This largescale, networked collaboration is typically achieved using software systems
to coordinate and analyze these human
endeavors. Moreover, software agents
have emerged as a key technology for
observing and reacting to human activities.17 This approach has also gained
popularity with mixed-initiative systems8 and the development of contextaware computing approaches within
ubicomp.1 However, in most of this
work, the software agents are a tool
to aid in understanding and managing user interactions. Users are in the
foreground and the agents are in the
background. The challenge of HACs
is moving from the presumption of a
dominant relationship, to consider how
users and agents coexist on a common
footing and are considered in a manner that allows flexible relationships to
emerge.
The role of people within HACs also
brings the incentives of the participants to the fore. Most current systems
largely assume altruistic and benevolent behavior, and have not dealt with
the need to provide incentives to potentially self-interested participants, nor
have they explicitly handled the inherent uncertainty of participatory content
in a consistent manner (see Rahwan
et al.28 for examples of such behavior
and Naroditskiy et al.23 for the design
of incentive structures to combat it).
Similarly, current approaches to accountable information infrastructures
have focused on augmenting specific
systems, such as databases3 or computational workflows,7 with the ability to
track information provenance. Now,
emerging efforts, such as the W3C
PROV Recommendation,21 are starting
to allow for the tracking of provenance
across multiple systems and to systems
where confidentiality of data needs to
be preserved.14 However, no work deals
with the simultaneous challenges of
humans in the loop and long-term and
online operation.
Human-Agent Collectives in Action
Consider the aftermath of a major natural disaster. A number of organizations

review articles
are in the area, including first responders (FRs), humanitarian aid organizations, and news reporters, as well as locals. A key aim for many of these actors
is to assess the situation to determine
the areas to focus on in the coming days
and weeks. To assist in this task, a number of the organizations have UASs that
can be used for aerial exploration and a
number of locals have installed sensors
to monitor the environment (for example, two weeks after the Fukushima incident, locals had built and deployed over
500 Geiger counter sensors and were
uploading their readings; see http://
jncm.ecs.soton.ac.uk/), in addition to
many locals using social media platforms such as Ushahidi or Google Crisis
Response to record requests for help
and complete maps of the stricken area.
A representative system architecture for
this HAC is shown in the accompanying
figure and an associated video is available at http://vimeo.com/76205207.

As can be seen, the information infrastructure contains a wide variety of


content (for example, maps of roads
and key amenities, weather forecasts,
and social media reports from locals in
the affected areas), from many sources.
Some of these sources provide higher
quality, more trustworthy information
than others (for example, international
aid organizations versus locally built environmental sensor readings). To help
account for and justify the decisions
that are made, the provenance of information is stored wherever possible.
Moreover, the decisions made by both
responders and autonomous agents (including UASs) are tracked to ensure all
members of the HAC are accountable
for their actions and the successes and
failures of the rescue effort can be better
understood when such data is reviewed
at a later stage.
At the start of a day, the various actors
(for example, FRs or local volunteers)

register their availability and relevant


resources (for example, UAS, ground
transport vehicles or medical supplies)
and indicate specific tasks they would
like to perform (for example, search
the area near the school or determine
if there is running water in a particular
district). These tasks will be informed
by their current assessment of the situation and may be influenced by particular requests from locals for assistance.
As a first step, some actor constructs
a plan to achieve one or more of the
tasksb (that is, the HAC forms). This
plan is likely to involve constructing
teams of people, agents, and resources
to work together on a variety of subtasks
because many activities are likely to be
beyond the capability of just one team
b It may be a human or a software agent that proposes the initial plan. Moreover, multiple actors may attempt to construct plans simultaneously, some of which may not come to fruition.

HAC system for disaster response.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

83

review articles
member. As they join, the various responders may accept the plan as is and
be ready to start enacting it. However
they may wish to make minor modifications (for example, putting in waypoints
en route to the chosen area to maximize
the value of the information obtained
or requesting help from volunteers for
some parts of the plan). Some may even
desire to make more major modifications (for example, indicating that a particular subtask that has initially been
excluded is more important than one
of the suggested ones or that significant
extra resources are needed for the plan
to be successful). This plan co-creation
iterates until agreement is reached,
with various cycles of the humans taking charge and the agents replanning
to account for the responders preferences.
Due to the nature of the problem and
environment, the HACs plan execution
(operation) phase may not go smoothly.
New higher-priority tasks may appear,
planned ones may turn out to be unnecessary, new actors and resources may
become available, or committed ones
may disappear (for example, due to FRs
being exhausted or UASs running out
of power). All of these will involve the
agents and the humans in an ongoing
monitoring and replanning endeavor,
potentially involving the disbanding of
existing teams and the coming together
of new ones with different combinations of capabilities that are a better
fit for certain types of rescue missions.
Moreover, the autonomy relationship
between the humans and the agents
may change during the course of plan
execution. For example, a team of UASs
may initially be instructed to gather imagery from a particular area in an entirely autonomous fashion and not to
disturb the FRs until the whole task is
complete. However, in performing this
task the UASs might run into difficulty
and request assistance with a complex
operation (for example, maneuvering in
a tight space to get a particular view of
a building) or the UASs might discover
something important they believe is
worth interrupting the responders for
or worth requesting help from an online
crowd to analyze the images collected.
As unforeseen events happen and the
complexity of the effort grows to involve
hundreds of responders, volunteers,
and UASs, the response coordinators
84

COMMUNICATIO NS O F TH E AC M

Different
constellations of
people, resources,
and information
must come
together, operate
in a coordinated
fashion, and
then disband.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

may need to rely more on autonomous


agents to compute plans and allocate
resources and actions to individuals
and UASs. Moreover, when the coordinators detect the agents are less able
to judge human abilities (for example,
because fatigue reduces human performance) or the nature of a task (for
example, complex digging operations
or surveillance), the coordinators may
choose to step in to change the plan or
input more information.
Over a number of days, responders
may notice that locals are less willing to
support the rescue effort and that those
who do only work on tasks in their own
areas. This means some areas do not
receive sufficient attention. To help fill
this gap, a number of additional incentive schemes could be put in place. First,
volunteers could be rewarded if they
sign up friends and family to assist with
the rescue effort, such rewards could
be financial (for example, payment for
hours worked or vouchers for fuel) or
nonfinancial (for example, promise of
quicker return of their amenities). Second, individuals who complete tasks
outside their local area and on high-priority tasks could receive additional credit, such as community service awards or
double time pay. Finally, to encourage
accurate reporting of the importance
and urgency of tasks, an incentive structure that increases the reputation of individuals who make assessments that
accord well with those of the professional responders may be introduced and
bonus payments made to recruiters who
hire the top task performers.
Key Research Challenges
HACs present research challenges in,
among other things, how we balance
control between users and agents (flexible autonomy), dynamically (dis)assembling collectives (agile teaming),
motivating actors (incentive engineering) and how we provide an information
infrastructure to underpin these endeavors. While none of these are entirely new areas, the HAC system context
introduces additional complexity and
brings new elements to the fore.
Flexible autonomy. HACs provoke
fundamental questions about the relationship between people and digital
systems that exhibit some form of autonomy. Specifically, the emergence of
HACs highlights the growing extent to

review articles
which computer systems can no longer
be thought of as entirely subservient.
We routinely obey navigation systems
without question or follow computergenerated instructions delivered on our
phones. As such autonomous systems
increasingly instruct us, new forms of
relationship are emerging. This shift
not only raises issues about how we
might design for interaction within
these systems, it also brings into focus
larger social and ethical issues of responsibility and accountability.
HACs are fundamentally socio-technical systems. Relationships between
users and autonomous software systems will be driven as much by userfocused issues (such as responsibility,
trust, and social acceptability), as technical ones (such as planning or coordination algorithms). Consequently, we
need to uncover the interactive principles of flexible autonomy that shape
these systems. A critical issue here is the
balance of control between the agents
and the users involved in the collective.
In particular, when do users need to be
in control and when should software
systems override them?
Given this, a key challenge is how to
ensure a positive sense of control within
HACs. Core to this issue is the sense of
social accountability and responsibility
inherent in our everyday activities. Our
professional and personal actions are
routinely available to others and we are
held accountable for them. In fact, it
could be argued that this shapes many
of our broader societal relations and understandings. But how will we feel when
we are sharing our world with computational elements that exert as much control over the environment as us? Will
the relationship be an easy or a tense
one and how might we manage that relationship? What checks and balances
are needed to allow a fruitful relationship to mature between software agents
and humans in HACs as the balance of
control shifts between them?
Tackling these questions requires
us to think about how software agents
might reveal their work to users. At
present, such software often operates
behind the scenes with limited visibility to users. They might make a recommendation on our behalf or schedule activities with the result of their
endeavors presented to users. However,
little if anything is conveyed of the ratio-

nale leading to this result. In contrast,


computational agents within HACs will
need to make their actions and rationale available so they can be socially accountable.
Revealing the role and actions of
software agents to users will bring into
focus a raft of questions that require us
to consider the broader social and ethical issues, potentially prompting significant reflection on the legal and policy
frameworks within which these systems
operate. For example, given the collective nature of the endeavor, it is important to determine who or what will ultimately be responsible for a particular
outcome and what this might mean for
the application of this approach. More
routinely, to what extent will people allow the software agents in these collectives the trust and latitude they might
give to other trained and qualified professionals? Will it be acceptable for
software agents to make mistakes as
they learn how to do a job as part of a
collective?
A critical issue here is how to represent both human and agent endeavors
in HACs, at multiple levels of scale and
aggregation. Along with promoting a
sense of social accountability, the ability
to recognize and understand the activities of others and to flexibly respond to
these actions is necessary to enable cooperation and to coordinate actions as
part of broader social endeavors. Thus,
the provision of mechanisms to make
users aware of the actions of others is
central to the design of many cooperative systems. In particular, the following
are central issues: What mechanisms
are needed to allow us to do this with
users and autonomous software agents
alike? How might we sense human actions and recognize the various activities a user is involved in and how might
these be conveyed to software agents?
What are the most appropriate techniques for presenting agents actions
and ongoing progress to users?
Agile teaming. Humans and agents
will form short-lived teams in HACs and
coordinate their activities to achieve the
various individual and joint goals present in the system before disbanding.
This will be a continual process as new
goals, opportunities and actors arrive.
To date, research within the multi-agent
systems community has generated a
significant number of algorithms to

form and coordinate teams; specifically


those algorithms found within the areas
of coalition formation and decentralized coordination.27,32 However, many of
these approaches focus on interactions
between software agents alone and do
not consider the temporal aspects of agile teaming.36
In HAC settings, these assumptions
are challenged. Centralized control is
simply not possible for large scale dynamic HACs. Moreover, approaches
must be developed to consider not just
what the optimal coalition looks like,
but how the individual humans and
agents, each with their own limited
communication and computation resources, can negotiate with one another to form a coalition, without having
explicit knowledge of the utilities and
constraints of all the other actors within
the system.
Addressing the decentralization issues is likely to involve local message
passing approaches that draw on insights from the fields of probabilistic
inference, graphical models, and game
theory. These allow coordination and
coalition formation problems to be efficiently represented as a graph by exploiting the typically sparse interaction
of the agents (that is, not every agent has
a direct interaction with every other). To
date, however, these approaches have
only addressed teams with tens of actors, while HACs will scale to hundreds
or possibly thousands. Similarly, extant
approaches have been developed with
the explicit assumption that all of the
actors engaged in the coordination have
similar computational and communication resources; an assumption that
will almost certainly not be valid within
most HACs. Addressing the challenge of
scaling up these approaches, such that
they can deal with large numbers of actors with heterogeneous computational
and communication resources, is likely
to require principled approximations to
be made (see Rahwan et al.29 for promising work in this vein that uses well
founded network flow optimization
algorithms to address large-scale coalition formation problems).
Furthermore, previous approaches
to forming teams and coordinating actors have typically assumed that complete and accurate knowledge regarding the utilities and constraints of the
system is available to all. Although such

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

85

review articles
assumptions may be valid within the
small-scale systems studied to date,
they will not apply to larger HACs operating within dynamic environments
where the sensing and communication
capabilities of the actors are unknown.
Previous work in this domain has addressed such uncertainty through the
frameworks of Markov decision processes (MDPs) and partially observable
MDPs. Now, while the Bayesian framework implicit in these approaches is
well founded and principled, again it
does not currently scale sufficiently
to allow its use in large systems where
time-critical decisions must be made.
As in the previous case, this requires
novel computational and approximation approaches to be devised.
Most importantly, the novel approaches to HAC formation and operation must also address the needs of the
humans within the system. Users will
have to negotiate with software agents
regarding the structure of the shortlived coalitions they will collectively
form, and then coordinate their activities within the resulting coalition. This
represents a major departure for the
mechanisms and techniques that have
predominantly focused on computational entities with little regard for the
ways in which users might form teams
or consideration of their relationship to
groupings such as teams. Consequently, the computational exploration must
be balanced by a focus on the persuasion and engagement of human participants within collectives. For example,
how might we understand and manage
the conflict between the need to break
up and reform teams with natural human preferences for stability and trust?
How might users feel about the possibility of working across multiple teams
simultaneously, and how might they
feel about taking instructions from software agents? Initial work has begun to
explore these questions within the context of mixed reality games20 and social
robotics.6 However, to fully understand
how these dynamics impact the requirements of the underlying team formation and coordination algorithms, we
need to build, deploy, and evaluate prototypical HACs in realistic settings.
Incentive engineering. What will cause
HACs to form and what will motivate
them to work well together? How do we
align the incentives of a set of actors, ei86

COMMUNICATIO NS O F TH E AC M

ther individually or as a group, with the


goals of the system designers to generate particular outcomes? Both of these
endeavors are challenging whenever
the behavior of the actors is guided by
individual and potentially conflicting
motives.4 Now, while it is acknowledged
that such actors may be influenced by
incentives of many different types, most
research to date has drawn upon microeconomics, focusing on monetary
incentives and assuming the actors
utility functions are well defined and
linear. Moreover, actors are typically
considered to be rational in that they
carry out complex computations to deduce their best action in equilibrium.
Unfortunately, these assumptions often
result in incentive mechanisms that are
centralized and brittle in the context of
open systems such as HACs.
HACs require us to reconsider many
of the presumptions central to most
current approaches to incentive engineering. They will involve actors that are
boundedly rational10 and whose behavior cannot always be controlled. For example, in disaster response settings, local volunteers (of different reliabilities)
can be co-opted by their family members and friends (through their social
network) and need to be coordinated to
work alongside emergency responders
from different agencies (with different
capabilities). Moreover, humans and
software agents may not always be receptive to monetary payments and may
react better to social or intrinsic incentives. For example, in the DARPA Red
Balloon Challenge, the incentive mechanism of the winning team was successful because it aligned individual financial incentives to find balloons with that
of recruiting members from their social
network and beyond.28 In contrast, essentially the same scheme attracted
very few volunteers on the MyHeartMap
Challenge (http://www.med.upenn.edu/
myheartmap/), which appealed mostly
to altruistic motivations to save heart
attack patients. Recently, Scekic et al.33
have surveyed and categorized such early examples of incentive mechanisms
for social computing platforms. They
note the vast majority of current systems
employ a simple contest between workers, from which a subjective assessment
of the winner is made. This winner
is then typically rewarded financially
for the work they have done. Far fewer

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

systems make use of non-monetary incentives. Those that do, often focus on
reputational issues. For example, they
cite avvo.com, which attracts large numbers of lawyers in the U.S. to provide free
response and advice to people visiting
the website, and generates a reputation
ranking of these lawyers based on the
quality and timeliness of responses they
provide. Now, the online ranking can
clearly impact the chances of attracting
customers to their private practices, but
the effect is indirect, and admits a greater range of personal motivation, compared to a direct monetary payment. To
date, however, comparatively little work
has attempted to formally define this
style of incentive mechanism. This is an
important omission because we believe
that bringing insights from behavioral
economics and nudge approaches to
behavior change,10,38 into the formal descriptions of mechanism design provided by game theory, is a promising point
of departure to engineer the types of incentives HACs require.
Now, even if the right incentives can
be ascertained, the actors in the system
may not perform to their best, either because they have limited capabilities or
are inherently byzantine. For example,
in systems such as AMT, where thousands of workers attempt micro-tasks
for a few cents, strategic workers attempt to complete as many tasks as possible with minimum effort. Similarly, in
citizen science projects such as Zooniverse, amateur scientists often select
the tasks they most enjoy rather than
those needed most for the project.34
Moreover, in long-lived interactions,
human actors may suffer from fatigue
and therefore their performance may
degrade over time. However, navely
filtering out the actors that cannot perform some tasks may mean their ability
to perform other tasks properly is wasted. Hence, it is crucial to design mechanisms to ensure the incentives given to
the actors to perform the tasks assigned
to them are aligned with their capabilities and reliabilities. Against this background, initial work in crowdsourcing,
and citizen science has, for example,
demonstrated how to set the price paid
for micro-tasks or how many tasks, of a
particular type, each actor should be allocated to incentivize them to perform
well.39 Gamification approaches have
also been successful in incentivizing

review articles
human participants to spend hours doing what would typically be viewed as
boring tasks.41 Nevertheless, more work
is needed to generalize these approaches and prove their efficacy in different
application areas.
While these challenges relate to how
incentives are chosen and presented,
the computation of these incentives
in the context of HACs is also a major
challenge. Indeed, the fact that HACs
involve large numbers of actors means
computationally efficient algorithms
need to be designed to enumerate and
optimize the, possibly combinatorial,
incentives to be given to a crowd, coalition, or individual within a HAC. When
the operation of such HACs unfolds
over a long period of time, possibly involving many repeated interactions and
negotiations, the schedule of incentives
to be offered is an even greater computational challenge. In most cases,
optimality will not be achievable and,
hence, the goal should be to seek approximate solutions. Some relevant
examples include algorithms to incentivize large numbers of electric vehicle
owners to schedule charging their cars
at different times to avoid overloading
a local transformer31 and algorithms to
approximate fair rewards for the participants of large teams.19
Accountable information infrastruc
ture. HACs will have a significant impact
on the ways in which we think about
the digital infrastructure that supports
them. Specifically, we need to consider how the data underpinning can be
shared. The provenance of this information is particularly critical. Here, provenance describes which information data
is derived from (what), the humans or
agents responsible for it (who), and the
methods involved in deriving it (how). In
turn, the infrastructure processes provenance to assess information quality, to
allow users to understand and audit the
past behavior of HACs, and to help humans decide whether a HACs decisions
can be trusted.
The ways in which HACs operate
requires us to reconsider some of the
prevailing assumptions of provenance
work. Provenance is generally thought
of as being fine-grained, deterministic,
and accurately and completely describing executions.21 This assumption is not
valid in HACs, since human activities
are both difficult to capture and unre-

A key challenge
is how to ensure a
positive sense of
control within HACs.
Core to this issue is
the sense of social
accountability
and responsibility
inherent in our
everyday activities.

liable. Moreover, asynchronous communications may make provenance


incomplete. Finally, the fine-grained
nature of provenance makes it difficult
for humans to understand. Addressing
these challenges is crucial, and a variety
of techniques are needed. For instance,
probabilistic models built on provenance may help capture the uncertainty
associated with what happened and
abstraction techniques may allow common patterns to be collapsed, and thus,
large graphs to be more manageable.
These promising directions require the
meaning of such provenance descriptions, and the kind of reasoning they
enable, to be investigated. Given the potential size of HACs in terms of agents
and humans, and also in terms of duration of execution, the scalability of reasoning algorithms is also an important
issue that requires further work.
The vision for an accountable information infrastructure is to help both
humans and agents understand the decisions made and determine whether
they can be trusted. Indeed, it is folklore
that provenance can help derive trust
and assess quality, but no principled
approach, readily applicable to HACs, is
currently available. In this context, the
ability to learn from provenance is important as it has the potential to make
provenance a rich source of information to establish trust, and also guide
decision-making in HACs. In particular,
given that provenance information typically takes the form of a graph, some of
the methods developed for graphs in
general may be customizable, and potentially be executable efficiently. An
example of such a solution is network
metrics that summarize complex situations and behaviors in a convenient and
compact way. Specifically, network metrics can be specialized to provenance
graphs, helping characterize HACs past
behavior, in an application-agnostic
manner.5 Then, by applying machine
learning techniques to provenanceoriented network metrics, we can label
graphs and nodes to derive trust about
agents or quality of data.
To date, existing infrastructure
mechanisms tend to embody a middleware perspective, formalizing data
models, developing algorithms, and
engineering the integration of facilities
such as provenance with applications.
However, HACs need to understand and

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

87

review articles
respond to the behavior of people and
how this human activity is captured,
processed, and managed raises significant ethical and privacy concerns. Often
at the core of these concerns is the manner in which people are separated from
data collected about them. Specifically,
in current infrastructures people are often unaware of the digital information
they bleed, how this information is processed, and the consequential effects
of the analytical inferences drawn from
this data. Consequently, people are at an
ethical disadvantage in managing their
relationship with the infrastructure as
they are largely unaware of the digital
consequences of their actions and have
no effective means of control or withdrawal. A HAC infrastructure will need
to be accountable to people, allowing
them to develop a richer and more bidirectional relationship with their data.
Developing an accountable infrastructure also responds to the call from
privacy researchers such as Nissenbaum24 to understand and support the
relationship between users and their
data. Indeed, her Contextual Integrity
theory frames privacy as a dialectic process between different social agents.
Others have built upon this point, suggesting a bidirectional relationship
needs to be embedded into the design
of services so they are recognized as
inherently social.35 This suggests users
should have a significant element of
awareness and control in the disclosure
of their data to others25 and the use of
this data by software agents. Establishing such bi-directional relationships
also requires us to reframe our existing
approaches to the governance and management of human data.
Perhaps the most critical issues in
this regard relate to seeking permission
for the use of personal data within information systems. Current approaches adopt a transactional model where
users are asked at a single moment to
agree to an often quite complex set of
terms of conditions. This transactional
model is already being questioned in
the world of bio-ethics, with Manson
and ONeill18 arguing for the need to
consider consent as much broader than
its current contractual conception. We
suggest that HACs will similarly need to
revisit the design principles of consent
and redress the balance of agency toward the users.16
88

COM MUNICATIO NS O F TH E ACM

References
1. Abowd, G.D., Ebling, M., Hung, G., Lei, H., and
Gellersen, H.W. Context-aware computing. IEEE
Pervasive Computing 1, 3 (2002) 2223.
2. Ariely, D., Bracha, A. and Meier, S. Doing good or doing
well? Image motivation and monetary incentives in
behaving prosocially. American Economic Review 99, 1
(2007), 54455.
3. Buneman, P., Cheney, J. and Vansummeren, S. On the
expressiveness of implicit provenance in query and
update languages. ACM Trans. Database Systems 33,
4 (2008), 147.
4. Dash, R.K., Parkes, D.C. and Jennings, N.R.
Computational mechanism design: A call to arms.
IEEE Intelligent Systems 18, 6 (2003) 4047.
5. Ebden, M., Huynh, T.D., Moreau, L., Ramchurn, S.D.
and Roberts, S.J. Network analysis on provenance
graphs from a crowdsourcing application. In Proc. 4th
Int. Conf. on Provenance and Annotation of Data and
Processes. (Santa Barbara, CA, 2012), 168182.
6. Fong, T., Nourbaksha, I. and Dautenhahn, K. A survey
of socially interactive robots. Robots and Autonomous
Systems 42 (2003), 143166.
7. Gil, Y., Deelman, E., Ellisman, M., Fahringer, T., Fox, G.,
Gannon, D., Goble, C., Livny, M., Moreau, L. and Myers,
J. Examining the challenges of scientific workflows.
IEEE Computer 40, 12 (2007), 2634.
8. Horvitz, E. Principles of mixed-initiative user
interfaces. In Proceedings of the SIGCHI conference
on Human Factors in Computing Systems (New York,
NY, 1999), 159166.
9. Jennings, N.R. An agent-based approach for building
complex software systems. Commun. ACM 44, 4
(Apr. 2001) 3541.
10. Kahneman, D. Maps of bounded rationality: Psychology
for behavioral economics. American Economic Review
93, 5 (2003) 14491475.
11. Kamar, E., Gal, Y. and Grosz, B. Modeling information
exchange opportunities for effective human-computer
teamwork. Artificial Intelligence Journal 195, 1 (2013)
528555.
14. Kifor, T. et al. Provenance in agent-mediated
healthcare systems. IEEE Intelligent Systems 21, 6,
(2006) 3846.
15. Krause, A., Horvitz, E., Kansal, A. and Zhao, F. Toward
community sensing. In Proc. Int. Conf. on Information
Processing in Sensor Networks (St Louis, MO, 2008),
481492.
16. Luger, E. and Rodden, T. An informed view on consent
for UbiComp. In Proc. Int. Joint Conf. on Pervasive
and Ubiquitous Computing (2013), 529538.
17. Maes, P. Agents that reduce work and information
overload. Commun. ACM 37, 7 (1994), 3140.
18. Manson, N.C. and ONeill, O. Rethinking informed
consent in bioethics. CUP, 2007.
19. Michalak , T., Aaditha, K.V., Szczepanski, P., Ravindran,
B. and Jennings, N.R. Efficient computation of the
Shapley value for game-theoretic network centrality.
J. AI Research 46 (2013), 607650.
20. Moran, S., Pantidi, N., Bachour, K., Fischer, J.E.,
Flintham, M. and Rodden, T. Team reactions to voiced
agent instructions in a pervasive game. In Proc. Int.
Conf. on Intelligent User Interfaces, (Santa Monica,
CA, 2013), 371382.
21. Moreau, L. The foundations for provenance on the
Web. Foundations and Trends in Web Science 2, 23
(2010) 99241.
22. Moreau, L. et al. Prov-dm: The prov data model. W3C
Recommendation REC-prov-dm-20130430, World
Wide Web Consortium, 2013.
23. Naroditskiy, V., Rahwan, I., Cebrian, M. and Jennings,
N.R. Verification in referral-based crowdsourcing. PLoS
ONE 7, 10 (2012) e45924.
24. Nissenbaum, H. Privacy as contextual integrity.
Washington Law Review 79, 1 (2004), 119158.
25. Palen, L. and Dourish, P. Unpacking privacy for a
networked world. In Proceedings of the SIGCHI
Conference on Human Factors in Computing Systems
(2003), 129136.
26. Paxton, M. and Benford, S. Experiences of participatory
sensing in the wild. In Proc. 11th Int. Conf. on
Ubiquitous Computing, (Orlando, FL, 2009), 265274.
27. Rahwan, T., Ramchurn, S.D., Jennings, N.R. and
Giovannucci, A. An anytime algorithm for optimal
coalition structure generation. J. Artificial Intelligence
Research 34 (2009), 521567.
28. Rahwan, I. et al. Global manhunt pushes the limits
of social mobilization. IEEE Computer 46, 4 (2013a)
6875.
29. Rahwan, T., Nguyen, T-D, Michalak, T., Polukarov,
M., Croitoru, M., Jennings, N.R. Coalitional games

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

via network flows. In Proc. 23rd Int. Joint Conf.


on Artificial Intelligence, (Beijing, China, 2013b),
324331.
30. Reddy, S., Parker, A., Hyman, J., Burke, J., Estrin, D.
and Hansen, M. Image browsing, processing, and
clustering for participatory sensing. In Proc. 4th
Workshop on Embedded Networked Sensors, (Cork,
Ireland, 2007), 1317.
31. Robu, V., Gerding, E.H., Stein, S., Parkes, D.C., Rogers,
A. and Jennings, N.R. An online mechanism for
multi-unit demand and its application to plug-in hybrid
electric vehicle charging. J. Artificial Intelligence
Research (2013).
32. Rogers, A., Farinelli, A., Stranders, R. and Jennings,
N.R. Bounded approximate decentralised coordination
via the max-sum algorithm. Artificial Intelligence 175,
2 (2011), 730759.
33. Scekic, O., Truong, H.-L. and Dustdar, S. Incentives and
rewarding in social computing. Commun. ACM 56, 6
(2013), 7282.
34. Simpson, E., Roberts, S.J., Smith, A. and Lintott,
C. Bayesian combination of multiple, imperfect
classifiers. In Proc. 25th Conf. on Neural Information
Processing Systems, (Granada, Spain, 2011).
35. Steeves, V. Reclaiming the social value of privacy.
Lessons from the Identity Trail. I. Kerr, V. Steeves
and C. Lucock, eds. Oxford University Press, 2009,
193208.
36. Stone, P., Kaminka, G.A., Kraus, S. and Rosenschein,
J.S. Ad hoc autonomous agent teams: Collaboration
without pre-coordination. In Proc. 24th Conference on
Artificial Intelligence (2010).
37. Tambe, M. et al. Conflicts in teamwork: Hybrids to the
rescue In Proc. 4th Int. Joint Conf. on Autonomous
Agents and Multiagent Systems, (Utrecht, The
Netherlands, 2005), 3-10.
38. Thaler, R.H. and Cass, R.S. Nudge: Improving Decisions
About Health, Wealth, and Happiness. Yale University
Press, 2008.
39. Tran-Thanh, L., Venanzi, M., Rogers, A. and Jennings,
N.R. Efficient budget allocation with accuracy
guarantees for crowdsourcing classification tasks. In
Proc. 12th Int. Conf. on Autonomous Agents and MultiAgent Systems (St. Paul, MN, 2013), 901908.
40. von Ahn, L. et al. recaptcha: Human-based character
recognition via web security measures. Science 321,
5895 (2008), 14651468.
41. von Ahn, L. and Dabbish, L. Labeling images with a
computer game. In Proc. SIGCHI Conf. on Human
Factors in Computing Systems, (Vienna, Austria,
2004), 319326.
42. Wooldridge, M.J. and Jennings, N.R. Intelligent
agents: Theory and practice. Knowledge Engineering
Review 10, 2 (1995) 115152.
N.R. Jennings (nrj@ecs.soton.ac.uk) is the Regius
Professor of Computer Science in Electronics and
Computer Science at the University of Southampton
University, U.K., and a chief scientific adviser to the U.K.
government.
L. Moreau (lavm@ecs.soton.ac.uk) is a professor of
computer science, head of the Web and Internet Science
group (WAIS), and deputy head (Research and Enterprise)
of Electronics and Computer Science at the University of
Southampton, U.K.
D. Nicholson (dn4@ecs.soton.ac.uk) is a senior industrial
scientist with BAE and a knowledge transfer officer for the
EPSRC-funded Human Agent Collectives project.
S. Ramchurn (sdr@ecs.soton.ac.uk) is a lecturer in
the Agents, Interaction, and Complexity Group (AIC),
Electronics and Computer Science at the University of
Southampton, U.K.
S. Roberts (sjrob@robots.ox.ac.uk) leads the Machine
Learning Research Group at Oxford, U.K. He is also a
Professorial Fellow of Somerville College and a faculty
member of the Oxford-Man Institute.
T. Rodden (tar@cs.nott.ac.uk) is a professor of computing
at the University of Nottingham and co-director of the
Mixed Reality Laboratory.
A. Rogers (acr@ecs.soton.ac.uk) is a professor of computer
science in the Agents, Interaction and Complexity Research
Group in the School of Electronics and Computer Science at
the University of Southampton, U.K.
Copyright held by owners/authors. Publication rights
licensed to ACM. $15.00

research highlights
P. 90

Technical
Perspective
Rethinking Caches
for Throughput
Processors
By Stephen W. Keckler

P. 91

Learning Your Limit: Managing


Massively Multithreaded
Caches Through Scheduling
By Timothy G. Rogers, Mike OConnor, and Tor M. Aamodt

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

89

research highlights
DOI:10.1145/ 2 6 8 2 5 8 5

Technical Perspective
Rethinking Caches for
Throughput Processors

To view the accompanying paper,


visit doi.acm.org/10.1145/2682583

rh

By Stephen W. Keckler

a mainstay of computer design for nearly 50 years and a


continued subject of academic and industry research. Caches are intended to
capture locality in the instructions or
data of a program, enabling a computer
system to provide the illusion of a large
fast memory, when in fact the underlying hardware only provides physical
structures that are small and fast (caches) or large and slow (main memory).
CPU systems today have as many as
four levels of cache spanning on-chip
SRAM to off-chip embedded DRAM.
CPU systems have typically used
caches as a means to hide memory
latency. Without caching, a singlethreaded program would spend the
vast majority of its time stalled waiting
for data to return from off-chip DRAM
memory. However, throughput-oriented computing systems, such as vector
processors and GPUs, are able to employ parallelism to tolerate memory latency, reducing the need for the latency
reduction effects of a cache. GPUs in
particular use massive multithreading to tolerate the latency; when one
thread executes a load instruction that
accesses main memory, other threads
can execute, keeping the processor
busy. Instead of being sensitive to
memory latency, throughput-oriented
systems tend to be sensitive to memory
bandwidth. As a result, their memory
hierarchies have traditionally been
designed to employ caches to reduce
DRAM bandwidth demand rather than
to reduce latency.
These different objectives for the
cache have led to different trade-offs in
modern GPU and CPU systems. For example, each of the 15 streaming multiprocessors on a contemporary NVIDIA
Kepler GPU has up to 2,000 threads
sharing a 256KB register file and a total of 96KB of level-1 data cache. The
15 streaming multiprocessors are coupled to 1.5MB of on-chip level-2 cache.
Thus, with the maximum number of
threads executing, each thread has

CACHES HAVE BEEN

90

COMMUNICATIO NS O F TH E ACM

private access to 128 bytes of register


file and a per-thread share of 48 bytes
of level-1 cache and 50 bytes of level-2
cache. By contrast, the 12-core IBM
Power8 processor provides about three
orders of magnitude more cache capacity with 8KB and 64KB of L1 and L2
cache (respectively) per thread. While
GPU caches focus on capturing shared
data among many threads, CPU caches
seek to capture temporal locality within a single thread.
However, as GPUs have become
mainstream parallel processing engines, many applications targeting
GPUs now have data locality more
amenable to traditional caching. The
challenge then is to design caching
systems that exploit both spatial and
temporal locality, without scaling the
cache capacity by the orders of magnitude per thread required to match
CPU architectures.
Historically, data locality optimizations have focused solely on the cache,
exploring allocation policies, eviction

The work in
the following paper
takes a different
approach for
improving cache
behavior and
computer system
performance by
focusing on thread
scheduling for
multithreaded
processors.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

policies, and basic cache organization. The work by Rogers et al. in the
following paper takes a different approach for improving cache behavior
and computer system performance
by focusing on thread scheduling for
multithreaded processors. The basic
idea is pretty simple: when a thread
has data locality, schedule it more often to increase the likelihood its data
is kept in the cache. This approach
has the effect of reducing the number
of threads executing in a window of
time, which (perhaps somewhat counterintuitively) increases throughput
and overall performance. Thus, under
some circumstances less is more.
The architecture described in the paper has a number of virtues. First, it requires no input from the programmer
or hints as to how many threads to keep
in the working set. Second, it automatically adapts to the locality behavior of
the program, ultimately reverting back
to the baseline maximum threads approach when thread-level data locality
is insufficient. In addition to the performance benefits shown in the study,
this approach to improving locality
also reduces bandwidth requirements
and power consumed transferring data
across the chip boundary.
This paper illustrates two aspects of
contemporary computer architecture
research. The first is a rethinking of
conventional wisdom required when a
new architecture model, technology, or
application domain emerges. Second,
this paper illustrates the opportunities
available when co-optimizing across
traditional computer architecture
boundaries. Thread scheduling in particular has the potential to improve not
just the L1 cache as described in this paper, but also secondary cache, DRAM,
and interconnect architectures.
Stephen W. Keckler is the senior director of architecture
research at NVIDIA and an adjunct professor in the
Department of Computer Science at the University of
Texas at Austin.
Copyright held by author.

DOI:10.1145/ 2 6 8 2 5 8 3

Learning Your Limit: Managing


Massively Multithreaded Caches
Through Scheduling
By Timothy G. Rogers, Mike OConnor, and Tor M. Aamodt

Abstract
The gap between processor and memory performance has
become a focal point for microprocessor research and
development over the past three decades. Modern architectures use two orthogonal approaches to help alleviate
this issue: (1) Almost every microprocessor includes some
form of on-chip storage, usually in the form of caches, to
decrease memory latency and make more effective use of
limited memory bandwidth. (2) Massively multithreaded
architectures, such as graphics processing units (GPUs),
attempt to hide the high latency to memory by rapidly
switching between many threads directly in hardware. This
paper explores the intersection of these two techniques.
We study the effect of accelerating highly parallel workloads with significant locality on a massively multithreaded
GPU. We observe that the memory access stream seen by
on-chip caches is the direct result of decisions made by
the hardware thread scheduler. Our work proposes a hardware scheduling technique that reacts to feedback from
the memory system to create a more cache-friendly access
stream. We evaluate our technique using simulations and
show a significant performance improvement over previously
proposed scheduling mechanisms. We demonstrate the
effectiveness of scheduling as a cache management technique by comparing cache hit rate using our scheduler and
an LRU replacement policy against other scheduling techniques using an optimal cache replacement policy.
1. INTRODUCTION
Have you ever tried to do so many things that you could not
get anything done? There is a classic psychological principal, known as unitary-resource theory, which states that the
amount of attention humans can devote to concurrently
performed tasks is limited in capacity.16 Attempting to divide
this attention among too many tasks at once can have a detrimental impact on your performance. We explore a similar
issue in the context of highly multithreaded hardware and
use human multitasking as an analogy to help explain our
findings. Our paper studies architectures which are built to
efficiently switch between tens of tasks on a cycle-by-cycle
basis. Our paper asks the question: Even though massively
multithreaded processors can switch between these tasks
quickly, when should they?
This work was performed when Mike O'Connor was with Advanced Micro
Devices (AMD) Research.

Over the past 30 years, there has been a significant


amount of research and development devoted to using onchip caches more effectively. At a hardware level, cache management has typically been optimized by improvements to
the hierarchy,3 replacement/insertion policy,14 coherence
protocol,19 or some combination of these. Previous work
on hardware caching assumes that the access stream seen
by the memory system is fixed. However, massively multi
threaded systems introduce another dimension to the
problem. Every clock cycle, a hardware thread scheduler
must choose which of a cores active threads issues next.
This decision has a significant impact on the access stream
seen by the first level caches. In a massively multithreaded
system, there are often many threads ready to be scheduled
on each cycle. This paper exploits this observation and uses
the thread scheduler to explicitly manage the access stream
seen by the memory system to maximize throughput.
The primary contribution of this work is a CacheConscious Wavefront Scheduling (CCWS) system that
uses locality information from the memory system to
shape future memory accesses through hardware thread
scheduling. Like traditional attempts to optimize cache
replacement and insertion policies, CCWS attempts to
predict when cache lines will be reused. However, cache
way-management policies decisions are made among a
small set of blocks. A thread scheduler effectively chooses
which blocks get inserted into the cache from a pool of
potential memory accesses that can be much larger than
the caches associativity. Similar to how cache replacement policies effectively predict each lines re-reference
interval,14 our proposed scheduler attempts to change
the re-reference interval to reduce the number of interfering references between repeated accesses to high
locality data. Like cache tiling techniques performed in
software by the programmer or compiler25 that reduce the
cache footprint of inner-loops by restructuring the code,
CCWS reduces the aggregate cache footprint primarily by
The original version of this paper is entitled CacheConscious Wavefront Scheduling and was published
in the Proceedings of the 45th IEEE/ACM International
Symposium on Microarchitecture, 2012. Another version
ofthis paper was also published as Cache-Conscious
Thread Scheduling for Massively Multithreaded Proces
sors in IEEE Micro Special Issue: Micros Top Picks from
2012 Computer Architecture Conferences (2013).

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

91

research highlights
dynamically throttling the number of threads sharing the
cache in hardware.
The importance of fine-grained thread scheduling on
cache management is a concern to any architecture where
many hardware threads can share a cache. Some examples
include Intels Knights Corner,11 Orcales SPARC T4,24 IBMs
Blue Gene/Q,9 and massively multithreaded graphics pro
cessing units (GPUs) such as those produced by AMD and
NVIDIA. In this work, we study the effect of thread scheduling on GPUs since they represent the most extreme example of a many-thread architecture. However, our techniques
couldbe extended and applied to any design where many
threads share a cache.
1.1. The effect of increasing your capacity
One solution to increase multitasking capability is to simply
increase the amount of information you can pay attention to
at once. Increasing the size of the GPUs cache is one option
our full paper22 explores in more detail. However, no matter what size of cache is used, it will always have a limit and
our work is focused on maximizing performance based on
this limitation. Figure 1 highlights the potential benefit of
increasing the attention capacity of a GPU. Figure 1 shows
the speedup attained by increasing the level one data (L1D)
cache size by 256 (from 32KB to 8MB) on the economically
important server applications listed in Table1. Our full
paper22 describes these applications in more detail. All of
these applications see a 3 or more performance improvement with a much larger L1 data cache, indicating there is
significant locality and that these programs and they would
benefit from caching more information.
Given that our workloads have significant locality,
the nextquestion is where does it come from? To understand this, first we must explain the concept of a wavefront
(or warp). Awavefront is a collection of threads whose
instructions are executed in lock-step by a GPU. Each static

Normalized IPC

Figure 1. Performance using a round-robin scheduler at various L1D


cache sizes for highly cache-sensitive workloads, normalized to a cache
size of 32K. All caches are 8-way set-associative with 128B cache lines.

7
6
5
4
3
2
1
0

36.3

BFS

KMN

32K L1D

MEMC

GC

8M L1D

HAR-MEAN

assembly instruction is implicitly executed across multiple


lanes when it is run. The number of threads in a wavefront is
a value native to each machine. Our baseline hardware architecture has a wavefront size of 32. A consequence of this is
that a single load/store instruction can access as many as
32different cache lines when executed. We study the locality of our highly cache-sensitive benchmarks in Figure 2
which presents theaverage number of hits and misses per
thousand instructions (PKI) using an unbounded L1D cache.
The figure separates hits into two classes. We classify locality that occurs when data is initially referenced and re-referenced from the same wavefront as intra-wavefront locality.
Locality resulting from data that is initially referenced by
one wavefront and re-referenced by another is classified as
inter-wavefront locality. Figure 2 illustrates that the majority
of data reuse observed in our highly cache-sensitive benchmarks comes from intra-wavefront locality. If we were to
think about this result in the context of a human trying to
multitask, it means that each of your tasks require a large
amount of information that is not shared with other tasks.
1.2. Primary goals of CCWS
Based on the observation that tasks do not share much data,
we design CCWS with the principal goal of capturing more
intra-wavefront locality. To this end, CCWS acts as a dynamic
thread throttling mechanism that prevents wavefronts from
issuing memory instructions when their accesses are predicted
to interfere with intra-wavefront locality already present in the
cache. CCWS detects if threads require more exclusive access
to cache through memory system feedback from a lost locality detector ( G in Figure 6 which gives a high-level view of our
baseline architecture explained in more detail in Section2).
The lost locality detector observes when the L1D has been
oversubscribed by storing the L1Ds replacement victim tags
in wavefront private sections. It uses these tags to determine if
misses in the L1D could have been avoided by giving the wavefront that missed more exclusive cache access. The lost locality
detector provides feedback akin to remembering that you were
supposed to do a small errand but no longer remember what the
errand was. You can use this information to reduce the number of tasks you are juggling at once because you realize you
have exceeded the capacity of your attention. Interpreting this
feedback is performed by CCWSs locality scoring system ( H ).
The locality scoring system decides which wavefronts should
be permitted to issue memory instructions, throttling those
Figure 2. Average hits and misses per thousand instructions (PKI)
using an unbounded L1 data cache (with 128B lines) on highly cachesensitive benchmarks.

Table 1. GPU compute benchmarks (CUDA and OpenCL)


Highly cache sensitive
Name

Abbreviation

Name

Abbreviation

BFS graph
traversal5
Memcached10

BFS

Kmeans5

KMN

MEMC

Garbage
collection2

GC

92

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Intra-wavefront hits PKI

Inter-wavefront hits PKI

Misses PKI

1.3. The effect of intelligently managing


your attention
Intelligently managing how your attention is allocated can
increase your multitasking effectiveness. In the context of
our problem, this is equivalent to improving the caches
replacement policy. To contrast the effects of hardware
thread scheduling and replacement policy, consider Figures
3 and 4. They present the memory accesses created by two
different thread schedulers in terms of cache lines touched.
In this example, we assume each instruction generates four
memory requests and we are using a fully associative, fourentry cache with a least recently used (LRU) replacement policy. Figure 3 illustrates what happens when the scheduler
attempts to fill empty cycles by executing another wavefront.
In Figure 3, no wavefront will find its data in cache because
the data will have been evicted by requests from other wavefronts before the wavefront is scheduled again. In fact, even
if a Belady optimal replacement policy4 were used, only
4hits in the cache are possible. The scheduler in Figure 4
isaware of the data reuse present in each wavefronts access
stream and has rearranged the wavefronts issue order to be
more cache-friendly. The scheduler in Figure 4 chooses to
schedule the memory accesses from wavefront 0 together,
Figure 3. Example access pattern (represented as cache lines
accessed) resulting from a throughput-oriented round-robin
scheduler. The letters (A,B,C,...) represent cache lines accessed.
Wi indicates which wavefront generated this set of accesses. For
example, the first four accesses to cache lines A,B,C,D are generated
by one instruction in wavefront 0.
Cache line

A,B,C,D

E,F,G,H

I,J,K,L

A,B,C,D

W0

W1

W2

W0

E,F,G,H
W1

I,J,K,L

0 hits

W2

even if it means leaving the processor idle while the requests


for wavefront 0 return. This results in 12 cache hits, capturing every redundant access made by the wavefronts.
1.4. The effect of doing less all the time
Another simple way to decrease interference among tasks is
to place a hard limit on the number of tasks performed at
once. Our paper proposes a simple mechanism called Static
Wavefront Limiting (SWL) that does something similar. SWL is
implemented as a minor extension to the wavefront scheduling logic where a cap is placed on the number of wavefronts
that are actively scheduled when the program is launched.
Figure 5 shows the effect that limiting the number of wavefronts
actively scheduled on a core has on the cache performance and
system throughput of our highly cache-sensitive applications.
Figure 5 shows that peak throughput occurs at a multithreading value less than maximum concurrency, but
greaterthan the optimum for cache miss rate (which limits
concurrency to a single wavefront). In SWL, the programmer must specify a limit on the number of wavefronts when
launching the kernel. This technique is useful if the user
knows or can easily compute the optimal number of wavefronts prior to launching the kernel.
Our full paper22 demonstrates that the optimal number of
wavefronts is different for different benchmarks. Moreover,
we find this number changes in each benchmark when its
input data is changed. This dependence on benchmark and
input data makes an adaptive CCWS system that adapts to
locality in threads as they are run desirable.
2. GPU ARCHITECTURE
Our work studies modifications to the GPU-like accelerator
architecture illustrated in Figure 6. The workloads we study
are written in OpenCL or CUDA. Initially, an application
begins execution on a host CPU which launches a kernel
containing a large number of threads on the GPU. Our baseline system uses GPGPU-Sim 3.x.1
Our work focuses on the decision made by the wavefront
issue arbiter (WIA) ( A in Figure 6). An in-order scoreboard
( B ) and decode unit ( C ) control when each instruction in
an instruction buffer (I-Buffer D ) is ready to issue. The WIA
decides which of these ready instructions issues next.
Figure 5. Average misses per thousand instructions (MPKI) and
harmonic mean (HMEAN) performance improvement of highly
cache-sensitive benchmarks with different levels of multithreading.
Instructions per cycle (IPC) is normalized to 32 wavefronts.
40

MPKI

HMEAN normalized IPC

Figure 4. Example access pattern resulting from a hardware


scheduler aware of its effect on the caching system. The red boxes
highlight where scheduling improves locality by changing memory
access order.
Cache line A,B,C,D
W0

HHHH
A,B,C,D
W0

E,F,G,H
W1

HHHH
E,F,G,H

I,J,K,L

HHHH
I,J,K,L

W1

W2

W2

12 hits

Average MPKI

35
30
25
20
15
10
5
0

10

15

20

25

30

35

1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0

HMEAN normalized IPC

that are predicted to cause interference. Changing the thread


scheduler to improve cache effectiveness introduces a new
challenge not encountered by traditional cache management
techniques. The goal of the scoring system is to maximize
throughput, not just cache hit rate. Typically, massively multithreaded architectures hide long latency operations by issuing
instructions from more threads. The CCWS scoring system
balances the trade-off between increasing latency tolerance
and reducing the need for latency hiding. Increasing the number of actively interleaved threads improves latency tolerance,
while interleaving less threads decreases the frequency of
long latency events. This is like trying to find the right balance
between not doing too many things at once while still managing to do more than one thing at a time.

Wavefronts actively scheduled

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

93

research highlights

Figure 6. Overview of our GPU-like baseline accelerator architecture. InstWi denotes the next instruction ready to issue for wavefront i.
Nisthe maximum number of wavefront contexts stored on a core. I-Buffer: instruction buffer.

GPU

Compute Unit
ComputeFetch/
Unit

I-Buffer

InstWN
I-Buffer
Decode
D
ComputeFetch/
Unit C
InstWN
InstW1 InstW2
Wavefront
B
I-Buffer Issue Arbiter
Decode
D
I-Buffer/
InstWN
InstW1 Inst
Fetch/ C
W2
Baseline
PriorityIssue
Logic Arbiter
Scoreboard
Wavefront
B
Decode
I-Buffer/
Can Issue [1:N] Locality
Waves
Baseline
Priority Logic
Scoring
Scoreboard
Intersection
Wavefront Issue Arbiter
Ready
[1:N]
B
I-Buffer/
System
Can Issue [1:N] Locality
Waves
A
Baseline
Priority
Logic
Scoring
Intersection
Scoreboard
Ready
[1:N] WIA
Lost Locality Detected H
Locality
System
Can Issue
[1:N] Unit
Waves
Inst. A
Memory
Scoring
Intersection Lost Locality Detected
WIA
Ready [1:N] (WID)
System Lost
Inst.
Registers/
E Memory
UnitF
A
L1D
Locality
Coalescer
WIAExecution
(WID)
Lost Locality Cache
Detected
F
Lost
Dectector
Inst.Registers/
EMemory
Mem. Unit
Unit
L1D
Locality
Coalescer
(WID)
Execution
G
Cache
F
Lost
Dectector
Registers/
E
Memory
Mem. Unit
L1D
Locality Port
Coalescer
Execution
Cache
Dectector
Memory
Mem. Unit
InstW1 InstW2

Memory Partition
Memory Partition

Off-Chip
Memory Partition
DRAM
L2 Cache Off-Chip
Channel
Port Portion Controller
DRAM
L2 Cache Off-Chip
Channel
Port Portion DRAM
Interconnect
Network

Port

L2 Cache
Portion

Channel
Controller

Port
Memory
Port

As mentioned previously, each memory instruction can


generate more than one memory access. Modern GPUs
attempt to reduce the number of memory accesses generated
from each wavefront using an access coalescer ( E ) which
groups the lanes memory requests into cache line-sized
chunks when there is spatial locality across the wavefront.
Applications with highly regular access patterns may generate as few as one or two memory requests that service all
32lanes. Our baseline GPU includes a 32K L1 data cache ( F )
which receives memory requests from the coalescer.
3. CACHE-CONSCIOUS WAVEFRONT
SCHEDULING(CCWS)
The goal of CCWS is to dynamically determine the number
of wavefronts allowed to access the memory system and
which wavefronts those should be. Figure 7 presents a more
detailed view of CCWSs microarchitecture. At a high level,
CCWS is a wavefront scheduler that reacts to access level
feedback ( 1 in Figure 7) from the L1D cache and a victim
tag array (VTA) at the memory stage.
CCWSs scheduling decisions are made by the locality
scoring system ( 6 ). The intuition behind why the scoring
system works is illustrated in Figure 8. Each wavefront is
given a score based on how much intra-wavefront locality
it has lost. These scores change over time. Wavefronts with
thelargest scores fall to the bottom of a small sorted stack
(e.g., W2 atT1), pushing wavefronts with smaller scores above
a cutoff (W3 at T1) which prevents them from accessing the
L1D. In effect, the locality scoring system reduces the number of accesses between data re-references from the same
wavefront by removing the accesses of other wavefronts.
3.1. Effect on baseline issue logic
Figure 7 shows the modifications to the baseline WIA ( 2 )
and memory unit ( 3 ) required for CCWS. CCWS is implemented as an extension to the systems baseline wavefront
94

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Figure 7. Modeled GPU core microarchitecture. N is the number of


wavefront contexts stored on a core. LSS: locality scoring system,
LLD: lost intra-wavefront locality detector, WID: wavefront ID, LLS:
lost-locality score, VTA: victim tag array, I-Buffer: instruction buffer.

Compute Unit

Fetch/
Decode

I-Buffer/
Scoreboard
Waves
Ready
[1:N]
2

WIA

Inst.
(WID)
Registers/
Execution
3
Mem. Unit

Waves
Ready
[1:N]

Wavefront Issue Arbiter

Baseline
Priority
Logic
Prioritized
Waves
[1:N]
7

Intersection

To Exec
Inst.
(WID)

14

LSS
5

LLS Cutoff Test


Score
[1:N]

Can
Issue
[1:N]

15

Access
From
Coaleser
L1D
Cache
8

Is Load
[1:N]

13

LLSW1
LLSW2

LLSWN
VTAHit
(WID)

LSS Update Logic

Memory Unit To LSS WID


(On VTA Hit)
Tag WID
Data
Tag WID
Data

12

11

(WID + Tag) On Evict/Miss

LLD
9
Victim Tag
Array

Tag
Tag

Tag
Tag

Tag
Tag

W1

W2

WN

10

prioritization logic ( 4 ). This prioritization could be done


in a greedy, round-robin, or two-level manner. CCWS operates by preventing loads that are predicted to interfere with
intra-wavefront locality from issuing through a Can Issue
bit vector ( 5 ) output by the locality scoring system ( 6 ).

Theintersection logic block ( 7 ) selects the highest priority


ready wavefront that has issue permission.
3.2. Lost intra-wavefront locality detector (LLD)
To evaluate which wavefronts are losing intra-wavefront
locality, we introduce the LLD unit ( 8 ) which uses a victim
tag array (VTA) ( 9 ). The VTA is a highly modified variation of
a victim cache.15 The entries of the VTA are subdivided among
all the wavefront contexts supported on this core. This gives
each wavefront its own small VTA ( 10 ). The VTA only stores
cache tags and does not store line data. When a miss occurs
and a line is reserved in the L1D cache, the wavefront ID
(WID) of the wavefront reserving that line is written in addition to the tag ( 11 ). When that line is evicted from the cache,
its tag information is written to that wavefronts portion of
the VTA.Whenever there is a miss in the L1D cache, the VTA
is probed. If the tag is found in that wavefronts portion of
the VTA, the LLD sends a VTA hit signal to the locality scoring
system ( 12 ). These signals inform the scoring system that a
wavefront has missed on a cache line that may have been a hit
if that wavefront had more exclusive access to the L1D cache.
3.3. Locality scoring system operation
Returning to the example in Figure 8, there are four wavefronts initially assigned to the compute unit. Time T0 corresponds to the time these wavefronts are initially assigned
to this core. Each segment of the stacked bar represents a
score given to each wavefront to quantify the amount of
intra-wavefront locality it has lost (which is related to the
amount of cache space it requires). We call these values lostlocality scores (LLS). At T0 we assign each wavefront a constant base locality score. LLS values are stored in a max heap
( 13 ) inside the locality scoring system. A wavefronts LLS
can increase when the LLD sends a VTA hit signal for this
wavefront. The scores each decrease by one point every cycle
until they reach the base locality score. The locality scoring
system gives wavefronts losing the most intra-wavefront
locality more exclusive L1D cache access by preventing the
Figure 8. Locality scoring system operation example. LLS: lostlocality score.

Wave
0s
LLS

W3
W3
W2
W1

W1
VTA Hit
VTA Hit
W0 (W2, W0)
(W2)

W2

Legend
Wave Cannot
Wz
Issue Loads

W1
W3
W0

No VTA
Hit

T1

LRR: Loose round-robin scheduling. Wavefronts are prioritized for scheduling in round-robin order. However, if a
wavefront cannot issue during its turn, the next wavefront
in round-robin order is given the chance to issue.
Figure 9. Performance of various schedulers for the highly cachesensitive benchmarks. Normalized to the GTO scheduler.
LRR

W0
W2

W2

W0
T0

W1

Cumulative
LLS CutoffTo

4. EVALUATION
We model CCWS in GPGPU-Sim1 (version 3.1.0). The simulator is configured to model an NVIDIA Quadro FX5800,
extended with L1 data caches and an L2 unified cache similar to NVIDIA Fermi. We also evaluate L1 data cache hit
rate using the Belady-optimal replacement policy,4 which
chooses the line which is re-referenced furthest in the future
for eviction. Belady replacement is evaluated using a tracebased cache simulator that takes GPGPU-Sim cache access
traces as input. We ran our experiments on the highly cachesensitive applications listed in Table 1. The full version of
our paper22 provides additional data on a collection of moderately cache-sensitive and cache-insensitive workloads and
gives more details on our experimental setup.
The data in Figures 9 and 10 is collected using GPGPUSim for the following mechanisms:

T2

Time

T3

GTO

2LVL-FG

Best-SWL

CCWS

5.9 4.1

2
Normalized IPC

Cumulative LLS

W3

wavefronts with the smallest LLS from issuing load instructions. Wavefronts whose LLS rise above the cumulative LLS
cutoff ( a in Figure 8) in the sorted heap are prevented from
issuing loads.
The LLS cutoff test block ( 14 ) takes in a bit vector from
the instruction buffer, indicating what wavefronts are
attempting to issue loads. It also takes in a sorted list of
LLSs, performs a prefix sum, and clears the Can Issue bit for
wavefronts attempting to issue loads whose LLS is above
thecutoff. In our example from Figure 8, between T0 and T1,
W2 has received a VTA hit and its score has been increased.
W2s higher score has pushed W3 above the cumulative LLS
cutoff, clearing W3s Can Issue bit if it attempts to issue a
load instruction. From a microarchitecture perspective,
LLSs are modified by the score update logic ( 15 ). The update
logic block receives VTA hit signals (with a WID) from the
LLD which triggers a change to that wavefronts LLS. In
Figure 8, between T1 and T2 both W2 and W0 have received
VTA hits, pushing both W3 and W1 above the cutoff. Between
T2 and T3, no VTA hits have occurred and the scores for W2
and W0 have decreased enough to allow both W1 and W3 to
issue loads again. This illustrates how the system naturally
backs off thread throttling over time. Our paper explains the
scoring system in more detail.

1.5
1.15

1
0.5
0

BFS

KMN

MEMC

GC

HAR-MEAN

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

95

research highlights

Figure 11. Breakdown of L1D misses, intra-wavefront locality hits


(broken into intra-thread and inter-thread), and inter-wavefront
locality hits per thousand instructions for highly cache-sensitive
benchmarks.

96

COMM UNICATIO NS O F THE ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

BFS

KMN

MEMC

AVG-HCS

CCWS

2LVL-FG

Best-SWL

LRR

GTO

CCWS

2LVL-FG

GC

Best-SWL

LRR

GTO

CCWS

2LVL-FG

LRR

GTO

Best-SWL

Average

CCWS

Best-SWL

LRR

20

LRR

40

Miss
Inter-wave
Intra-wave hit (inter-thread)
Intra-wave hit (intra-thread)

GTO

MPKI

60

LRR-BEL
GTO-BEL
2LVL-FG-BEL
Best-SWL-BEL
CCWS-BEL

180
160
140
120
100
80
60
40
20
0

2LVL-FG

LRR
GTO
2LVL-FG
Best-SWL
CCWS

80

(Hit/Miss) PKI

Figure 10. MPKI of various schedulers and replacement policies for


the highly cache-sensitive benchmarks.

CCWS

4.1. Performance
Figure 9 shows that CCWS achieves a harmonic mean 63%
performance improvement over a simple greedy wavefront
scheduler and 72% over the 2LVL-GTO scheduler on highly
cache-sensitive benchmarks. The GTO scheduler performs
well because prioritizing older wavefronts allows them to
capture intra-wavefront locality by giving them more exclusive access to the L1 data cache.
CCWS and SWL provide further benefit over the GTO
scheduler because these programs have a number of uncoalesced loads, touching many cache lines in relatively few
memory instructions. Therefore, even restricting to just
the oldest wavefronts still touches too much data to be contained by the L1D.
Figure 10 shows the average MPKI for all of our highly
cache-sensitive applications using an LRU replacement
policy and an oracle Belady-optimal replacement policy
(BEL). It illustrates that the reason for the performance
advantage provided by the wavefront limiting schemes is a
sharp decline in the number of L1D misses. Furthermore, it
demonstrates that a poor choice of scheduler can reduce the
effectiveness of any replacement policy.

5. RELATED WORK
Other papers have observed that throttling the number of
threads running in a system can improve performance.
Bakhoda et al.1 observe that launching less workgroups
(orCTAs) on a GPU core without an L1 cache improved performance by alleviating contention for the memory system.
Guz et al.8 introduce an analytical model to quantify the
performance valley that exists when the number of threads
sharing a cache is increased. They show that increasing
the thread count increases performance until the aggregate working set no longer fits in cache. Increasing threads
beyond this point degrades performance until enough
threads are present to hide the systems memory latency.
In effect, CCWS dynamically detects when a workload has
entered the machines performance valley and scales downthe
numberof threads sharing the cache to compensate. Cheng
etal.6 introduce a thread throttling scheme to reduce
memory latency in multithreaded CPU systems. They propose an analytical model and memory task limit throttling
mechanism to limit thread interference in the memory stage.
There is a body of work attempting to increase cache

2LVL-FG

(scheduler)-BEL: Miss rate reported by our cache simulator


when using the Belady-optimal replacement policy. The
access streams generated by running GPGPU-Sim with
the specified (scheduler) are used.

Best-SWL

The data for Belady-optimal replacement misses per thou


sand instructions (MPKI) presented in Figure 10 is generated
with our trace-based cache simulator:

4.2. Detailed breakdown of wavefront locality


Figure 11 breaks down L1D accesses into misses, interwavefront hits, and intra-wavefront hits for our evaluated
the schedulers. In addition, it quantifies the portion of
intra-wavefront hits that are a result of intra-thread locality. It illustrates that the decrease in cache misses using
CCWS and Best-SWL comes chiefly from an increase in
intra-wavefront hits. Moreover, the bulk of these hits are
a result of intra-thread locality. The exception to this rule
is Breadth First Search (BFS) graph traversal, where only
30% of intra-wavefront hits come from inter-thread locality and we see a 23% increase in inter-wavefront hits. An
inspection of the code reveals that inter-thread sharing
(which manifests itself as both intra-wavefront and interwavefront locality) occurs when nodes in the applications input graph share neighbors. Limiting the number
of wavefronts actively scheduled increases the hit rate of
these accesses because it limits the amount of nonshared
data in the cache, increasing the chance that these shared
accesses hit.

GTO

GTO: A greedy-then-oldest scheduler. GTO runs a single


wavefront until it stalls then picks the oldest ready
wavefront.
2LVL-GTO: A two-level scheduler similar to that described
by Narasiman et al.20 Their scheme subdivides wavefronts
waiting to be scheduled on a core into fetch groups (FG)
and executes from only one fetch group until all wavefronts in that group are stalled. Intra- and inter-FG arbitration is done in a GTO manner.
Best-SWL: An oracle solution that knows the optimal number of wavefronts to schedule concurrently before the kernel begins to execute.
CCWS: Cache-Conscious Wavefront Scheduling with GTO
wavefront prioritization logic.

hit rateby improving the replacement policy (e.g., Jaleel et


al.14 among many others). All these attempt to exploit different heuristics of program behavior to predict a blocks
re-reference interval and mirror the Belady-optimal4 policy as closely as possible. While CCWS also attempts to
maximize cache efficiency, it does so by shortening the
re-reference interval rather than by predicting it. CCWS
has to balance the shortening of the re-reference interval by limiting the number of eligible wavefronts while
still maintaining sufficient multithreading to cover
most of the memory and operation latencies. Other
schemes attempt to manage interference among heterogeneous workloads,12, 21 but each thread in our workload has roughly similar characteristics. Recent work
has explored the use of prefetching on GPUs.18 However,
prefetching cannot improve performance when anapplication is bandwidth limited whereas CCWS can helpin
such cases by reducing off-chip traffic. Concurrent to our
work, Jaleel et al.13 propose the CRUISE scheme which
uses LLC utility information to make high-level scheduling decisions in multiprogrammed chip multiprocessors
(CMPs). Our work focuses on the first level cache in a
massively multithreaded environment and is applied at a
much finer grain. Scheduling decisions made by CRUISE
tie programs to cores, where CCWS makes issue-level
decisions on which bundle of threads should enter the
execution pipeline next.
Others have also studied issue-level scheduling algorithms on GPUs. Lakshminarayana and Kim17 explore
numerous warp scheduling policies in the context of a GPU
without hardware-managed caches and show that, for applications that execute symmetric (balanced) dynamic instruction counts per warp, a fairness-based warp and DRAM
access scheduling policy improves performance. Several works
have explored the effect of two-level scheduling on GPUs.7, 20
A two-level scheduler exploits inter-wavefront locality while
ensuring wavefronts reach long latency operations at different times by scheduling groups of wavefronts together.
However, Figure 2 demonstrates that the highly cache
-sensitive benchmarks we studied will benefit more from
exploiting intra-wavefront locality than inter-wavefront
locality. Previous schedulers do not take into account the
effect issuing more wavefronts has on the intra-wavefront
locality of those wavefronts that were previously scheduled.
In the face of L1D thrashing, the round-robin nature of their
techniques will cause the destruction of older wavefronts
intra-wavefront locality. Our follow-up work on DivergenceAware Warp Scheduling (DAWS)23 builds upon the insights in
CCWS. DAWS attempts to proactively predict the cache footprint of each warp. It does this by considering the impact of
memory and control divergence while taking into account
the loop structure of computation kernels. In that work, we
demonstrate through an example that DAWS enables nonoptimized GPU code, where locality is not managed by the
programmer, to perform within 4% of optimized code.
6. CONCLUSION
Current GPU architectures are excellent at accelerating
applications with copious parallelism, whose memory

access is regular and statically predicable. Modern CPUs


feature deep cache hierarchies and a relatively large
amount of cache available per-thread, making them better suited for workloads with irregular locality. However,
CPUs limited thread count and available memory bandwidth prohibit their ability to exploit pervasive parallelism.
Each design has problems running the important class of
highly parallel irregular applications where threads access
data from disparate regions of memory. The question of
how future architectures can accelerate these applications
is important.
Many highly parallel, irregular applications are commercially important and found in modern data centers. The
highly cache-sensitive benchmarks in our paper include
several such workloads, including Memcached,10 a parallel
Garbage Collector,2 and a breadth-first search graph traversal5 program. We demonstrate that these applications
are highly sensitive to L1 cache capacity when naive thread
schedulers are used. Furthermore, we show that a relatively
small L1 cache can capture their locality and improve performance, provided an intelligent issue-level thread scheduling scheme is used.
Although our work focuses primarily on performance,
the impact of CCWS and consequently fine-grained thread
scheduling on power consumption is important. As modern chips become progressively more power limited, preserving locality in the cache can be an effective way to
reduce power consumption. CCWS can be tuned to reduce
the number of data cache misses even further, at the
expense of some performance.
Intellectually, we feel this work offers a new perspective on fine-grained memory system management. We
believe that integrating the cache system with the issuelevel thread scheduler to change the access stream
seen by the memory system opens up a new direction of
research in cache management. CCWS demonstrates that
a relatively simple, dynamically adaptive, feedback-driven
scheduling system can vastly improve the performance of
an important class of applications.
Acknowledgments
We thank Norm Jouppi, Yale N. Patt, Aamer Jaleel, Wilson
Fung, HadiJooybar, Inderpreet Singh, Tayler Hetherington,
Ali Bakhoda,and our anonymous reviewers for their insightfulfeedback. We also thank Rimon Tadros for his work on
the garbage collector benchmark. This research was funded
in part by a grant from Advanced Micro Devices Inc.

References
1. Bakhoda, A., Yuan, G., Fung, W.,
Wong, H., Aamodt, T. Analyzing
CUDA workloads using a detailed
GPU simulator. In Proceedings
of International Symposium on
Performance Analysis of Systems
and Software (ISPASS 2009),
163174.
2. Barabash, K., Petrank, E. Tracing
garbage collection on highly
parallel platforms. In Proceedings
of International Symposium on
Memory Management (ISMM

2010), 110.
3. Beckmann, B.M., Marty, M.R.,
Wood, D.A. ASR: Adaptive selective
replication for CMP caches. In
Proceedings of International
Symposium on Microarchitecture
(MICRO 39) (2006), 443454.
4. Belady, L.A. A study of replacement
algorithms for a virtual-storage
computer. IBM Syst. J. 5, 2 (1966),
78101.
5. Che, S., Boyer, M., Meng, J., Tarjan, D.,
Sheaffer, J., Lee, S.H., Skadron, K.
Rodinia: A benchmark suite

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

97

research highlights

6.

7.

8.

9.

10.

11.

for heterogeneous computing.


InProceedings of International
Symposium on Workload
Characterization (IISWC 2009),
4454.
Cheng, H.Y., Lin, C.H., Li, J., Yang, C.L.
Memory latency reduction via
thread throttling. In Proceedings
of International Symposium on
Microarchitecture (MICRO 43) (2010),
5364.
Fung, W., Aamodt, T. Thread block
compaction for efficient SIMT control
flow. In Proceedings of International
Symposium on High Performance
Computer Architecture (HPCA 2011),
2536.
Guz, Z., Bolotin, E., Keidar, I.,
Kolodny,A., Mendelson, A., Weiser, U.
Many-core vs. many-thread machines:
Stay away from the valley. Comput.
Architect. Lett. 8, 1 (Jan. 2009),
2528.
Haring, R., Ohmacht, M., Fox, T.,
Gschwind, M., Satterfield, D.,
Sugavanam, K., Coteus, P.,
Heidelberger, P., Blumrich, M.,
Wisniewski, R., Gara, A., Chiu, G.T.,
Boyle, P., Chist, N., Kim, C.
TheIBMBlue Gene/Q compute
chip. Micro IEEE 32, 2 (Mar.Apr.
2012), 4860.
Hetherington, T.H., Rogers, T.G.,
Hsu, L., OConnor, M., Aamodt, T.M.
Characterizing and evaluating a
key-value store application on
heterogeneous CPU-GPU systems.
In Proceedings of International
Symposium on Performance Analysis
of Systems and Software (ISPASS
2012), 8898.
Intel Xeon Phi Coprocessor Brief.

12.

13.

14.

15.

16.
17.

http://www.intel.com/content/www/
us/en/high-performance-computing/
high-performance-xeon-phicoprocessor-brief.html.
Jaleel, A., Hasenplaugh, W.,
Qureshi, M., Sebot, J., Steely, S., Jr.,
Emer, J. Adaptive insertion policies
for managing shared caches.
In Proceedings of International
Conference on Parallel Architecture
and Compiler Techniques (PACT
2008), 208219.
Jaleel, A., Najaf-abadi, H.H.,
Subramaniam, S., Steely, S.C.,
Emer, J. CRUISE: Cache replacement
and utility-aware scheduling.
In Proceedings of International
Conference on Architectural Support
for Programming Languages and
Operating Systems (ASPLOS 2012),
249260.
Jaleel, A., Theobald, K.B.,
Steely, S.C., Jr., Emer, J. High
performance cache replacement
using re-reference interval
prediction (RRIP). In Proceedings
of International Symposium on
Computer Architecture (ISCA
2010), 6071.
Jouppi, N.P. Improving direct-mapped
cache performance by the addition
of a small fully-associative cache
and prefetch buffers. In Proceedings
of International Symposium on
Computer Architecture (ISCA 1990),
364373.
Kahneman D. Attention and Effort
Prentice-Hall, 1973.
Lakshminarayana, N.B., Kim, H. Effect
of instruction fetch and memory
scheduling on GPU performance. In
Workshop on Language, Compiler,

18.

19.

20.

21.

and Architecture Support for GPGPU


(2010).
Lee, J., Lakshminarayana, N.B.,
Kim, H., Vuduc, R. Many-thread
aware prefetching mechanisms for
GPGPU applications. In Proceedings
of International Symposium on
Microarchitecture (MICRO 43) (2010),
213224.
Marty, M.R., Hill, M.D. Coherence
ordering for ring-based chip
multiprocessors. In Proceedings
of International Symposium on
Microarchitecture (MICRO 39) (2006),
309320.
Narasiman, V., Shebanow, M., Lee, C.J.,
Miftakhutdinov, R., Mutlu, O., Patt, Y.N.
Improving GPU performance via
large warps and two-level warp
scheduling. In Proceedings of
International Symposium on
Microarchitecture (MICRO 44)
(2011), 308317.
Qureshi, M.K., Patt, Y.N. Utility
basedcache partitioning:
A low-overhead, high-performance,
runtime mechanism to partition
shared caches. In Proceedings

Timothy G. Rogers and Tor M. Aamodt


({tgrogers, aamodt}@ece.ubc.ca),
Department of Electrical and Computer
Engineering, University of British
Columbia, Vancouver, Canada.

22.

23.

24.

25.

of International Symposium on
Microarchitecture (MICRO 39) (2006),
423432.
Rogers, T.G., OConnor, M., Aamodt, T.M.
Cache-Conscious Wavefront
Scheduling. In Proceedings of
IEEE/ACM International
Symposiumon Microarchitecture
(MICRO-45) (2012).
Rogers, T.G., OConnor, M., Aamodt, T.M.
Divergence-Aware Warp Scheduling.
In Proceedings of IEEE/ACM
International Symposium on
Microarchitecture (MICRO-46) (2013).
Shah, M., Golla, R., Grohoski, G.,
Jordan, P., Barreh, J., Brooks, J.,
Greenberg, M., Levinsky, G., Luttrell, M.,
Olson, C., Samoail, Z., Smittle, M.,
Ziaja, T. Sparc T4: A dynamically
threaded server-on-a-chip. Micro
IEEE 32, 2 (Mar.Apr. 2012), 819.
Wolf, M.E., Lam, M.S. A data locality
optimizing algorithm. In Proceedings
of ACM SIGPLAN Conference on
Programming Language Design and
Implementation (PLDI 91) (1991),
3044.

Mike OConnor (moconnor@nvidia.com),


NVIDIA Research, Austin, TX.

2014 ACM 0001-0782/14/12 $15.00

World-Renowned Journals from ACM


ACM publishes over 50 magazines and journals that cover an array of established as well as emerging areas of the computing field.
IT professionals worldwide depend on ACM's publications to keep them abreast of the latest technological developments and industry
news in a timely, comprehensive manner of the highest quality and integrity. For a complete listing of ACM's leading magazines & journals,
including our renowned Transaction Series, please visit the ACM publications homepage: www.acm.org/pubs.

ACM Transactions
on Interactive
Intelligent Systems

ACM Transactions
on Computation
Theory

ACM Transactions on Interactive


Intelligent Systems (TIIS). This
quarterly journal publishes papers
on research encompassing the
design, realization, or evaluation of
interactive systems incorporating
some form of machine intelligence.

ACM Transactions on Computation


Theory (ToCT). This quarterly peerreviewed journal has an emphasis
on computational complexity, foundations of cryptography and other
computation-based topics in theoretical computer science.

98 PUBS_halfpage_Ad.indd
COM MUNICATIO NS O F1 TH E

AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

PLEASE CONTACT ACM MEMBER


SERVICES TO PLACE AN ORDER
Phone:
1.800.342.6626 (U.S. and Canada)
+1.212.626.0500 (Global)
Fax:
+1.212.944.1318
(Hours: 8:30am4:30pm, Eastern Time)
Email:
acmhelp@acm.org
Mail:
ACM Member Services
General Post Office
PO Box 30777
New York, NY 10087-0777 USA

www.acm.org/pubs
6/7/12 11:38 AM

CAREERS
Bowling Green State University
One tenure-track position in Computer Science
We are seeking applicants for a tenure-track position at the assistant professor level to teach a variety of courses at the undergraduate and graduate
levels and be productive in scholarly research and
sponsored projects. Preferred area of specialization is cyber security, including but not limited
to: information assurance, software security, mobile security, data privacy, cyber-physical systems
security, and computer forensics. Applicants
must hold a Ph.D. in CS (or closely related field)
or complete it by August 2015, and be committed to excellence in teaching, scholarly research,
and external funding. BGSU offers a small town
atmosphere with easy access to Columbus, Detroit, and Ann Arbor. BGSU is an AA/EOE and encourages applications from women, minorities,
veterans, and individuals with disabilities. Email
a letter of interest, along with curriculum vitae,
statement of teaching philosophy and research
agenda, contact information for three professional references, and copies of all transcripts
by Sunday, January 11, 2015 to cssearch2015@
cs.bgsu.edu. We will contact your references. We
will select a small number of finalists to come to
campus for an interview. An official transcript of
the terminal degree and a background check are
also required for employment. For details, go to
http://www.bgsu.edu/arts-and-sciences/computer-science/cs-open-faculty-position.html.

California State University, Fullerton


Department of Computer Science
Assistant Professor
The Department of Computer Science invites applications for several tenure-track positions at
the Assistant Professor level starting January or
August 2015. For a complete description of the
department, the position, desired specialization and other qualifications, please visit http://
hr.fullerton.edu/diversity/job-openings/

California State University, Sacramento


Department of Computer Science
Two Tenure-Track Assistant Professor
positions
California State University, Sacramento, Department of Computer Science.
Two Tenure-Track Assistant Professor positions to begin with the Fall 2015 semester. One
position is in Database Systems, and the other
in Systems Software. Ph.D. in Computer Science,
Computer Engineering, or closely related field required by the time of appointment. For detailed
position information, including application procedure, please see http://www.csus.edu/about/
employment/. Screening will begin January 15,
2015, and continue until positions are filled.

AA/EEO employer. Clery Act statistics available.


Mandated reporter requirements. Criminal background check may be required.

Clarkson University
Department of Computer Science
Assistant Professor
The Department of Computer Science at Clarkson University (www.clarkson.edu/cs) invites
applications for a tenure-track position in computer science at the rank of Assistant Professor
starting in August 2015, but we may hire at a more
senior level. We are interested in candidates with
research expertise in applied systems areas such
as operating systems, security, networking, parallel and distributed computing, and database
systems, or in computer graphics or visualization.
Responsibilities include teaching undergraduate and graduate level courses, and directing
graduate students. Minimum requirements are a
Ph.D. in computer science by the date of appointment, demonstrated excellence in research and
teaching, and fluency in English. Applications
including vita and three reference letters should
be submitted to https://clarkson.peopleadmin.
com/. Completed applications will be reviewed
starting immediately. Women and minorities are
urged to apply. Clarkson University is an AA/EOE
Employer.

Colorado School of Mines


Assistant Professor - Computer Science
Colorado School of Mines invites applications
for a tenure-track assistant professor position
in Computer Science. Research specializations
of interest are privacy/security and large-scale
data management. The successful candidate
will teach undergraduate and graduate courses
as well as develop an externally funded research
program that includes graduate students and results in publications in conferences and journals.
Required is a Ph.D. in Computer Science,
Computer Engineering, Electrical Engineering,
Software Engineering, or closely related field. Applicants must demonstrate, or show evidence of,
excellent written, oral communication and interpersonal skills.
For the complete job announcement and
directions on how to apply, visit: http://inside.
mines.edu/HR-Academic-Faculty

York. Applications at the assistant professor, and


in exceptional cases, at the associate professor
and full professor levels, will be considered.
Applications are sought in all areas of computer science, with particular emphasis on, but
not limited to, the following areas: 1) Computer
Hardware and Software Systems; 2) Machine
learning, Algorithms and Optimization; 3) Privacy and Security. For positions in areas (2) and (3)
we particularly seek candidates whose research
focus intersects with the field of data sciences
and who can take full advantage of the Institute
for Data Sciences and Engineering at Columbia.
Candidates must have a Ph.D. or its professional equivalent by the starting date of the appointment. Applicants for this position at the Assistant Professor and Associate Professor without
tenure levels must demonstrate the potential to
do pioneering research and to teach effectively.
Applicants for this position at the tenured level
(Associate or Full Professor) must have a demonstrated record of outstanding research accomplishments, excellent teaching credentials and
established leadership in the field.
The successful candidate is expected to contribute to the advancement of their field and the
department by developing an original and leading externally funded research program, and by
contributing to the undergraduate and graduate
educational mission of the Department. Columbia fosters multidisciplinary research and encourages collaborations with academic departments and units across Columbia University. The
Department is especially interested in qualified
candidates who can contribute, through their research, teaching, and/or service, to the diversity
and excellence of the academic community.
For additional information and to apply, please
see: http://engineering.columbia.edu/faculty-jobopportunities. Applications should be submitted
electronically and include the following: curriculum-vitae including a publication list, a description
of research accomplishments, a statement of research and teaching interests and plans, contact information for three experts who can provide letters
of recommendation, and up to three pre/reprints of
scholarly work. All applications received by December 15, 2014 will receive full consideration.
Applicants can consult www.cs.columbia.edu
for more information about the department.
Columbia is an affirmative action/equal opportunity employer with a strong commitment to
the quality of faculty life.

Drexel University

Columbia University
Columbia Engineering
Faculty Positions in the Department of
Computer Science
Columbia Engineering invites applications for
faculty positions in the Department of Computer
Science at Columbia University in the City of New

College of Computing & Informatics


Faculty Positions in Computer Science
The College of Computing and Informatics at
Drexel University invites applications for multiple tenure-track and tenured faculty positions in
computer science at all levels. Candidates should
have a Ph.D. in Computer Science or related field

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T HE ACM

99

CAREERS
at the time of appointment and a record of highquality scholarly activities. Applicants for senior
hires are expected to have demonstrated exceptional leadership in large-scale, multidisciplinary
research programs. The College of Computing
and Informatics is home to vibrant research activities in computer science including artificial
intelligence, vision and graphics, programming
languages, high-performance computing, human computer interaction, privacy and security,
algorithms and theory, computer science education, software engineering, distributed systems,
databases and data mining, and computer algebra. Applications in all areas will be considered.
Successful applicants will be expected to teach
at the undergraduate and graduate levels, establish strong sponsored research programs, advise
undergraduate and graduate students, and be involved in service to the college, the university, as
well as the global academic community.
Drexel is a private university committed to research with real-world applications. The university has over 25,000 students in 14 colleges and
schools and offers about 200 degree programs.
The College of Computing and Informatics has
about 75 faculty and 2,300 students. Drexel has
one of the largest and best known cooperative
education programs in the country, with over
1,200 co-op employers. Drexel is located on Philadelphias Avenue of Technology in the University City District and at the hub of the academic,
cultural, and historical resources of the nations
sixth largest metropolitan region.
Evaluation of applications will begin as early
as January 1, 2015, and will continue on a rolling

basis until appropriate candidates are identified.


Successful applicants must demonstrate potential for research and teaching excellence in the
environment of a major research university.
To be considered, apply at https://www.drexeljobs.com/userfiles/jsp/shared/frameset/Frameset.jsp?time=1412694461140 or search for Requisition #6406.
Your application should consist of a cover letter, CV, and brief statements describing your research program and teaching interests. Letters of
reference will be requested from candidates who
are invited for a campus interview. Electronic submissions in PDF format are required. Contact:
Dave Raiken; Email: raiken@drexel.edu
Drexel University is an Equal Opportunity/Affirmative Action Employer. The College of Computing & Informatics is especially interested in
qualified candidates who can contribute to the diversity and excellence of the academic community. Background investigations are required for all
new hires as a condition of employment, after the
job offer is made. Employment will be contingent
upon the Universitys acceptance of the results of
the background investigation.

Duke University
Department of Computer Science
Tenure-track Faculty Positions, Assistant
Professor level
The Department of Computer Science at Duke
University in Durham, North Carolina, invites
applications and nominations for tenure-track

Florida International University is recognized as a Carnegie engaged university. It is a


public research university with colleges and schools that offers more than 180 bachelors,
masters and doctoral programs in fields such as engineering, international relations,
architecture, law and medicine. As one of South Floridas anchor institutions, FIU
contributes $9.8 billion each year to the local economy. FIU is Worlds Ahead in finding
solutions to the most challenging problems of our time. FIU emphasizes research as a
major component of its mission. FIU has awarded over 200,000 degrees and enrolls
more than 54,000 students in two campuses and three centers including FIU Downtown
on Brickell, FIU@I-75, and the Miami Beach Urban Studios. FIU also supports artistic
and cultural engagement through its three museums: the Patricia & Phillip Frost Art
Museum, the Wolfsonian-FIU, and the Jewish Museum of Florida-FIU. FIU is a member of
Conference USA and has over 400 student-athletes participating in 18 sports. For more
information about FIU, visit http://www.fiu.edu/.
The School of Computing and Information Sciences (SCIS) seeks exceptionally qualified
candidates for tenure-track and tenured faculty positions at all levels as well as non-tenure
track faculty positions at the level of Instructor, including visiting instructor appointments.
SCIS is a rapidly growing program of excellence at the University, with 30 tenure-track
faculty members and over 1,800 students, including over 80 Ph.D. students. SCIS offers
B.S., M.S., and Ph.D. degrees in Computer Science, an M.S. degree in Telecommunications
and Networking, and B.S., B.A., and M.S. degrees in Information Technology. SCIS has
received over $22M in the last four years in external research funding, has six research
centers/clusters with first-class computing and support infrastructure, and enjoys broad
and dynamic industry and international partnerships.
Open-Rank Tenure Track/Tenured Positions (Job ID# 508676)
SCIS seeks exceptionally qualified candidates for tenure-track and tenured faculty
positions at all levels. We seek well-qualified candidates in all areas; researchers in
the areas of cybersecurity, cognitive modeling, compilers and programming languages,
computer architecture, databases, information retrieval and big data, and biomedical
systems are particularly encouraged to apply. Preference will be given to candidates who
will enhance or complement our existing research strengths.

100

CO MM UNICATIO NS O F T H E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

faculty positions at the assistant professor level,


to begin August 2015. We are interested in strong
candidates in all active research areas of computer science, as well as interdisciplinary areas.
The department is committed to increasing
the diversity of its faculty, and we strongly encourage applications from women and minority
candidates. Please refer to www.cs.duke.edu for
information about the department and to www.
provost.duke.edu/faculty/ for information about
the advantages that Duke offers to faculty.
Durham, Chapel Hill, and the Research Triangle of North Carolina are vibrant, diverse and
thriving communities, frequently ranked among
the best places in the country to live and work.
Duke and the many other universities in the area
offer a wealth of education and employment opportunities for spouses and families.
Duke University is an Affirmative Action/
Equal Opportunity Employer committed to providing employment opportunity without regard
to an individuals age, color, disability, genetic
information, gender, gender identity, national
origin, race, religion, sexual orientation or veteran status.
Job Requirements:
Applications should be submitted online through
the link provided at www.cs.duke.edu/facsearch.
A successful candidate must have a solid disciplinary foundation and demonstrate promise of
outstanding scholarship in every respect, including research and teaching.
A Ph.D. in computer science or related area is
required.

Ideal candidates for junior positions should have a record of exceptional research in their
early careers. Candidates for senior positions must have an active and proven record
of excellence in funded research, publications, and professional service, as well as a
demonstrated ability to develop and lead collaborative research projects. In addition to
developing or expanding a high-quality research program, all successful applicants must
be committed to excellence in teaching at both the graduate and undergraduate levels. An
earned Ph.D. in Computer Science or related disciplines is required.
Non-tenure track instructor positions (Job Opening 507474)
We seek well-qualified candidates in all areas of Computer Science and Information
Technology. Ideal candidates must be committed to excellence in teaching a variety of
courses at the undergraduate level. A graduate degree in Computer Science or related
disciplines is required; significant prior teaching and industry experience and/or a Ph.D.
in Computer Science is preferred.
HOW TO APPLY: Qualified candidates for open- rank faculty positions are encouraged to
apply to (Job Opening ID #508676); and candidates for instructor positions are encouraged
to apply to (Job Opening ID # 507474). Submit applications at facultycareers.fiu.edu
and attach cover letter, curriculum vitae, statement of teaching philosophy, research
statement, etc as individual attachments. Candidates will be required to provide names
and contact information for at least three references who will be contacted as determined
by the search committee. To receive full consideration, applications and required materials
should be received by December 31st, 2014. Review will continue until position is filled.
If you are interested in a visiting appointment please contact the department directly by
emailing Dr. Mark Weiss at Weiss@cis.fiu.edu. All other applicants should apply by going
to facultycareers.fiu.edu.
FIU is a member of the State University System of Florida and an Equal Opportunity,
Equal Access Affirmative Action Employer. All qualified applicants will receive
consideration for employment without regard to race, color, religion, sex, national
origin, disability status, protected veteran status, or any other characteristic
protected by law.

Faculty Positions in Computer Science


The Computer Science program at KAUST invites applications
to faculty positions at all levels (Full, Associate and Assistant
Professors) effective immediately. Areas of interest include:
- Big data and data analytics.
- Computer security.
- Data mining and machine learning.
- High performance computing.
- Operating systems and distributed systems.
- Scientific visualization.
A successful candidate must have a doctoral degree in Computer Science or related area. A
strong record of publications in top conferences or journals is a must. Candidates applying
for senior levels must have demonstrated strong leadership in the field and visibility as
evidenced by top publications and active participation in research governance of top
conferences and journals. Women are strongly encouraged to apply. Also of particular
interest are interdisciplinary candidates who can open new areas of investigation.
KAUST is an international, graduate-only research university dedicated
to the advancement of science and technology. Located on the shores of
the red sea, it features world-class infrastructure and an attractive research
funding model.
Please apply via http://apptrkr.com/527423 employment site. Please
include the names of three references for Assistant Professor positions and
at least six for senior positions. Applications will be considered until the
positions are filled but not later than April 15, 2015. Prospective candidates
are advised to apply as soon as possible.

CAREERS
Applications should be submitted online
through the link provided at www.cs.duke.edu/
facsearch. To guarantee full consideration, applications and letters of reference should be received by December 1, 2014.
Contact Person: Faculty Search Coordinator
Email Address:
facsearch@cs.duke.edu
Apply URL:
http://academicjobsonline.org/ajo/Duke/CS

ETH Zurich
PhD
Two fully funded PhD positions for at least three
years at the AIT lab, ETH Zurich. The salary comfortably covers living expenses. We are looking
for outstanding and highly motivated students
with a background in one of the following areas:
human-computer interaction, computer graphics, signal processing, computer vision, robotics or related areas. Candidates will work in a
friendly and very international team and will
be part of our research projects and teaching
activities.
Master degree in Computer Science or related
area. Outstanding GPA. Fluent in English. Good
programming and writing skills.
Contact: Otmar Hilliges
Email:
ait-jobs@inf.ethz.ch
Apply URL:
http://ait.inf.ethz.ch/jobs/phd/

Max Planck Institute for Informatics


Junior Research Group Leaders in the Max
Planck Center for Visual Computing and
Communication
The Max Planck Institute for Informatics, as the
coordinator of the Max Planck Center for Visual
Computing and Communication (MPC-VCC), invites applications for
Junior Research Group Leaders
in the Max Planck Center for Visual Computing
and Communication
The Max Planck Center for Visual Computing and
Communications offers young scientists in information technology the opportunity to develop
their own research program addressing important problems in areas such as
image communication
computer graphics
geometric computing
imaging systems
computer vision
human machine interface
distributed multimedia architectures
multimedia networking
visual media security.
The center includes an outstanding group of
faculty members at Stanfords Computer Science
and El-ectrical Engineering Departments, the
Max Planck Institute for Informatics, and Saarland University.
The program begins with a preparatory 1-2
year postdoc phase (Phase P) at the Max Planck Institute for Informatics, followed by a two-year ap-

pointment at Stanford University (Phase I) as a visiting assistant professor, and then a position at the
Max Planck Institute for Informatics as a junior
research group leader (Phase II). However, the program can be entered flexibly at each phase, commensurate with the experience of the applicant.
Applicants to the program must have completed an outstanding PhD. Exact duration of the
preparatory postdoc phase is flexible, but we typically expect this to be about 1-2 years. Applicants
who completed their PhD in Germany may enter
Phase I of the program directly. Applicants for
Phase II are expected to have completed a postdoc stay abroad and must have demonstrated
their outstanding research potential and ability
to successfully lead a research group.
Reviewing of applications will commence on
01 Jan 2015. The final deadline is 31 Jan 2015. Applicants should submit their CV, copies of their
school and university reports, list of publications,
reprints of five selected publications, names of
3-5 references, a brief description of their previous research and a detailed description of the
proposed research project (including possible
opportunities for collaboration with existing research groups at Saarbrcken and Stanford) to:
Prof. Dr. Hans-Peter Seidel
Max Planck Institute for Informatics,
Campus E 1 4, 66123 Saarbrcken, Germany;
Email: mpc-vcc@mpi-inf.mpg.de
The Max Planck Center is an equal opportunity employer and women are encouraged to apply.
Additional information is available on the
website http://www.mpc-vcc.de

PHYSICS

Looking for a PhD position?


N

CO

ND DEV
LA

LUTIO
EVO

ROSCIEN
EU

CE
L

PhD granting institution devoted to basic


research in natural sciences and math
4-5 year study
BS or MS degree (or equivalent) required
internationally competitive PhD salary

Deadline for applications

www.ist.ac.at

January 15, 2015

COMM UNICATIO NS O F T H E ACM

EMATICS
TH

CE

IOLOGY
LB

PhD Program

102

OPMENTA
EL

UTER SC
P
M

CE
IEN

GY

RY BIOLO
NA

MA

Join the IST Austria Grad School!

for students wishing to enter the


program in the fall of 2015 is

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

IST Austria is committed to Equality and Diversity.

CAREERS
Max Planck Institute for Software
Systems
Tenure Track Openings

students and post-docs.


b) Faculty supervise doctoral theses, and have the
opportunity to teach graduate and undergraduate
courses.
c) Faculty enjoy outstanding technical and administrative support, as well as internationally
competitive compensation.

Applications are invited for tenure-track faculty


positions in all areas related to the theory and
practice of software systems. These areas include,
but are not limited to, security and privacy, embedded and mobile systems, social computing,
MPI-SWS currently has 10 tenured and tendata science, programming languages and sysure-track faculty and about 50 doctoral and posttems, software verification and analysis, parallel,
doctoral researchers. The institute will grow to at
distributed, and networked systems.
least 17 faculty over the coming years. We mainA doctoral degree in computer science or retain an open, international and diverse work envilated areas and an outstanding research record
ronment and seek applications from outstanding
are required. Successful candidates are expected
researchers regardless of national origin or citito build a team and pursue a highly visible rezenship. The working language is English; knowlsearch agenda, both independently and in coledge of the German language is not required for a
laboration with other groups.
successful career at the institute.
MPI-SWS, founded in 2005, is part of a netThe institute is located in Kaiserslautern and
work of over 80 Max Planck Institutes, Germanys
Saarbruecken, in the tri-border area of Germany,
premier basic research facilities. MPIs have an
France and Luxembourg. In immediate proximity
established record of world-class, foundational
are the MPI for Informatics, Saarland University,
research in the fields of medicine, biology, chemthe Technical University of Kaiserslautern, the Geristry, physics, technology and humanities. Since
man Center for Artificial Intelligence (DFKI), and
1948, MPI researchers have won 17 Nobel prizes.
the Fraunhofer Institutes for Experimental SoftMPI-SWS aspires to meet the highest standards of
ware Engineering and for Industrial Mathematics.
excellence and international recognition with
its
Qualified candidates
should
apply online via
Communications
of the
ACM
research in software systems.
the secure application form. The review of appliSize:
1/2
page
(7
x
4.625)
To this end, the institute offers a unique encations will begin on December 1, 2014, and ap: December
vironment that combines the best aspects of aIssue
plicants
are strongly encouraged to apply by that
university department and a research laboratory:
date; however, applications will continue to be
accepted through December 2014.
a) Faculty enjoy academic freedom, receive inThe institute is committed to increasing the
stitutional funding and attract additional thirdrepresentation of minorities, women and individparty funds to build and lead a team of graduate
uals with physical disabilities in Computer Sci-

ence. We particularly encourage such individuals


to apply.
The initial tenure-track appointment is for
five years; it can be extended to seven years based
on a midterm evaluation in the fourth year. A permanent contract can be awarded after a successful tenure evaluation in the sixth year.
Apply URL: http://www.mpi-sws.org/index.
php?n=careers/tenure-track

National University of Singapore (NUS)


Department of Computer Science
Multiple Tenure-Track Faculty Positions
The Department of Computer Science, National
University of Singapore (NUS), has openings for
several tenure-track faculty positions. Our main
focus is on candidates at the Assistant Professor
level with research interests in the following areas:
Cyber-physical systems
Big data analytics
Security
Sensor data modelling and learning
These areas are to be viewed in a broad sense,
and we are particularly interested in candidates
whose research interests cut across these and
related areas. We seek candidates demonstrating excellent research potential and a strong
commitment to teaching. We will also seriously
consider exceptional candidates in other areas of
computer science. Further, we will consider candidates at senior ranks (Associate and Full Profes-

TENURE-SYSTEM FACULTY POSITIONS


DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
The Department of Computer Science and Engineering (CSE) at Michigan State University (MSU) invites applications for two tenuresystem faculty positions in the area of machine learning and other related disciplines.
Candidates at all ranks will be considered. The successful candidates will be expected to develop an externally funded interdisciplinary
research program of national prominence that includes fundamental research, publications in journals and high quality conferences,
and training graduate students. Multidisciplinary research is strongly encouraged and is being actively pursued by the faculty members
at MSU. Leadership is expected in the development of innovative educational programs that provide state-of-the-art knowledge to both
undergraduate and graduate students. Candidates should have a Ph.D. in Computer Science or a closely related field, with evidence
of research accomplishments, teaching skills, and ability to work effectively with other researchers. The candidate is also expected to
participate in MSU campus programs, including the Institute for Cyber-Enabled Research, which supports a significant high performance
computing infrastructure and a steadily increasing data science/computational science program. Appointment will start in August 2015.
MSU enjoys a park-like campus with outlying research facilities and natural areas. The campus is adjacent to the city of East Lansing
and the capital city of Lansing. The Lansing metropolitan area has a diverse population of approximately 460,000 residents. Local communities have excellent school systems and place a high value on education. Michigan State University is pro-active in exploring opportunities for employment for dual career couples, both inside and outside the University and information about MSUs dual career support
can be found at http://miwin.msu.edu/. Information about WorkLife at MSU and the College of Engineering can be found at
http://www.egr.msu.edu/WE.
Applicants should submit a cover letter, curriculum vitae, the names of at least three references, and statements of research and teaching
interests for this position through http://jobs.msu.edu and refer to posting #0222 (PDF files are preferred). Applications will be reviewed
on a continuing basis until the positions are filled. Review of applications will begin on December 1, 2014. Nominations or questions are
welcome by contacting the search committee chair through email at search@cse.msu.edu.
For additional information about the university, college and department, please use the following links:
CSE Department - http://www.cse.msu.edu College of Engineering - http://www.egr.msu.edu/ MSU http://www.msu.edu/

MSU is committed to achieving excellence through cultural diversity. The University actively encourages applications and/or nominations of
women, persons of color, veterans and persons with disabilities.
MSU is an Affirmative Action, Equal Opportunity Employer.

104

COMM UNICATIO NS O F T H E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

sor) who have an outstanding record of research


accomplishments.
We are an internationally top-ranked department with low teaching loads, excellent facilities,
and intensive external collaborations. Significant
funding opportunities abound for strong candidates. The research of the faculty covers all the
major areas of computer science and is well represented at prestigious international conferences
and journals. The department has a thriving PhD
programme and it actively strives to attract the
best students from the region and beyond. More
information can be found at http://www.comp.
nus.edu.sg/.
NUS offers highly competitive salaries and
generous benefits, while Singapore provides a
vibrant international environment with worldclass health care, excellent infrastructure, a warm
climate and very low taxes.
Interested candidates are invited to send, via
electronic submission, the following materials to
the Chair of the CS Search Committee, Prof. P.S.
Thiagarajan, at csrec@comp.nus.edu.sg
Cover letter
Curriculum Vitae
A teaching statement
A research statement
Contact information for at least three
references
Applications will be reviewed as they are received and will continue until the positions are
filled. However, to ensure maximal consideration
applicant should submit their materials by January 15, 2015.

North Carolina State University


Department of Computer Science
Security Faculty Positions
Assistant/Associate/Full Professor - Security
The Department of Computer Science at North
Carolina State University (NCSU) seeks to fill tenure-track faculty positions in the area of Security
starting August 16, 2015.
Successful security candidates must have a
strong commitment to academic and research
excellence, and an outstanding research record
commensurate with the expectations of a major
research university. Required credentials include
a doctorate in Computer Science or a related
field. While the department expects to hire at the
Assistant Professor level, candidates with exceptional research records are encouraged to apply
for a senior position. The department is one of
the largest and oldest in the country. It is part of a
top US College of Engineering, and has excellent
and extensive ties with industry and government
laboratories. The departments research expenditures and recognition have been growing steadily
as has the recognition of our impact in the areas
of security, systems, software engineering, educational informatics, networking, and games. For
example, we have one of the largest concentrations of NSF Early Career Award winners (24 of
our current or former faculty have received one).
NCSU is located in Raleigh, the capital of
North Carolina, which forms one vertex of the
world-famous Research Triangle Park (RTP). RTP
is an innovative environment, both as a metropolitan area with one of the most diverse industrial
bases in the world, and as a center of excellence

Concordia University,
Montreal
Three Positions
Concordia Universitys Faculty of Engineering and Computer Science (ENCS) is a fast-growing advanced training and research
institution with a tradition of excellence. Our cohort of full-time professors in ENCS has increased from 126 to 176 over the last
decade, and we count 27 research chairs, as we strive to help meet the demands of an increasingly technology-dependent, networked
society. Weve concurrently enjoyed strong growth among undergraduate and graduate student enrolment thanks to our state-of-theart laboratories, world class student-centric learning environment, strong partnerships with industry, exceptional faculty members, and
commitment to a progressive, socially responsible and ethical education. All engineering programs offered by ENCS are accredited
by the Canadian Engineering Accreditation Board and the computer science program by the Computer Science Accreditation Council
to the maximum duration possible.
Our academic units are:
Building, Civil and Environmental Engineering
Computer Science and Software Engineering
Electrical and Computer Engineering

Mechanical and Industrial Engineering


Concordia Institute for Information Systems Engineering
Centre for Engineering in Society

Find out more about ENCS through our website: concordia.ca/encs.


Review of applications for these positions will begin upon receipt and will continue until the closing date. All qualified candidates
are encouraged to apply for these positions; however, Canadians and Permanent Residents will be given priority. Concordia University
is strongly committed to employment equity within its community, and to recruiting a diverse faculty and staff. The University
encourages applications from all qualified candidates, including women, members of visible minorities, Aboriginal persons, members
of sexual minorities, persons with disabilities, and others who may contribute to diversification.
Canada Research Chair Tier 1 Cyber Security
We invite applications for a Canada Research Chair Tier 1 position in the area of Cyber Security. Applicants should be internationally
recognized as leaders in the field of Cyber Security with excellent track records in leading major research initiatives; attracting strong
external funding; supervising graduate students and postdoctoral fellows; and teaching courses at the undergraduate and graduate
levels. Moreover, they must propose an original, innovative and research program of the highest quality. Applicants must possess a
PhD degree in the area of Electrical and Computer Engineering, or a related discipline. Candidates must possess a strong expertise
in one of the following: Information Systems Security, Network Security, Wireless and Mobile Security, Operating Systems Security,
Malware Analysis, Application and Software Security, Privacy, and Cyber Forensics. The candidate is expected to attract funding from
government agencies (i.e. NSERC, FQRNT) and from industry. Membership or eligibility for membership in a Canadian professional
engineering association, preferably in the province of Quebec, is required.
Electronic applications are preferred and should include detailed curriculum vitae, a statement concerning teaching and research
interests, and names of at least three referees. Applications should be received at the following address by January 1, 2015.
Dr. Rachida Dssouli, Director
Concordia Institute for Information Systems Engineering
director-ciise@encs.concordia.ca
http://www.ciise.concordia.ca/
Software Engineering
We invite applications for one tenure-track position in Software Engineering. The appointment is intended to be at the rank of Assistant
Professor. Exceptional candidates at the Associate level may also be considered. We will consider applicants in all research areas
of software engineering, but we are particularly interested in candidates who have conducted theoretical or empirical research in
requirements, design and implementation of software systems such as computer games, mobile games/apps, cloud gaming and
large scale data applications. The CSE department has an active research group in software engineering in addition to highly popular
software engineering degrees at both undergraduate and graduate level.
Applicants must have a PhD in computer science, software engineering or computer engineering or a related area and
also possess significant research contributions in software engineering. A successful candidate is expected to provide academic
leadership, establish a strong externally funded research program, demonstrated abilities to work in collaborative multidisciplinary
settings and teach/develop both undergraduate and graduate courses. Strong commitment to the supervision of graduate student
research and to excellence in teaching are essential. Relevant industrial experience is an asset. Excellent communication skills are
required. Membership or eligibility for membership in a Canadian professional engineering association, preferably in the province of
Quebec, is required.
Applications should consist of a detailed curriculum vitae, a statement concerning teaching and research interests, and the
names of at least three referees. This appointment is expected to commence in August, 2015. Review of the applications will begin
immediately and continue until the position is filled. Only short-listed applicants will be contacted. Electronic applications are preferred
and should be sent by no later than January 1, 2015 to:
Dr. Sudhir Mudur, Chair
Department of Computer Science and Software Engineering
mudur@cse.concordia.ca
http://www.concordia.ca/encs/computer-science-software-engineering.html
Computer Games and Virtual Worlds
We invite applications for a tenure-track strategic hire position in the area of Computer Games and Virtual Worlds for appointment
in the Department of Computer Science and Software Engineering (CSE). The CSE department has an active research group in 3D
Graphics in addition to a highly popular Computer Games degree option at the undergraduate level. The goal of the strategic hire
program is to augment existing research capacity in the department through high profile interdisciplinary research in collaboration
with members of Concordias Technoculture, Art and Games Research Centre (TAG). The successful candidate will receive an
attractive research support and teaching package. For additional information about ENCS, CSE and TAG see www.encs.concordia.ca,
www.cse.concordia.ca and www.tag.hexagram.ca.
Applicants must have a PhD in computer science, software engineering or computer engineering or a related area and also
possess research and development expertise in the area of computer games, 3D graphics and virtual worlds. A successful candidate
is expected to provide academic leadership, establish a strong externally funded research program, demonstrated abilities to work
in collaborative multidisciplinary settings and teach/develop both undergraduate and graduate courses. Strong commitment to the
supervision of graduate student research and to excellence in teaching are essential. Relevant industrial experience is an asset.
Excellent communication skills are required. Membership or eligibility for membership in a Canadian professional engineering
association, preferably in the province of Quebec, is required.
Applications should consist of a detailed curriculum vitae, a statement concerning teaching and research interests, and the
names of at least three referees. This appointment is expected to commence in August 2015. Review of the applications will begin
immediately and continue until the position is filled. Only short-listed applicants will be notified. Electronic applications are preferred
and should be sent no later than January 1, 2015 to:
Dr. Sudhir Mudur, Chair
Department of Computer Science and Software Engineering
mudur@cse.concordia.ca
http://www.concordia.ca/encs/computer-science-software-engineering.html

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

105

CAREERS
promoting technology and science. The Research
Triangle area is routinely recognized in nationwide surveys as one of the best places to live in the
U.S. We enjoy outstanding public schools, affordable housing, and great weather, all in the proximity to the mountains and the seashore.
Applications will be reviewed as they are received. The positions will remain open until suitable candidates are identified. Applicants are
encouraged to apply by December 15, 2015. Applicants should submit the following materials
online at http://jobs.ncsu.edu (reference position
number 00001094) cover letter, curriculum vitae, research statement, teaching statement, and
names and complete contact information of four
references, including email addresses and phone
numbers. Candidates can obtain information
about the department and its research programs,
as well as more detail about the position advertised
here at http://www.csc.ncsu.edu/. Inquiries may be
sent via email to: security-search@csc.ncsu.edu.
NCSU is an equal opportunity and affirmative
action employer. In addition, NCSU welcomes all
persons without regard to sexual orientation or
genetic information. Individuals with disabilities
requiring disability-related accommodations in
the application and interview process please call
(919) 515-3148.

Northern Arizona University


Assistant Professor
Northern Arizona University invites applications
for a tenure-track Assistant Professor position

in Informatics and Computing starting August


2015. Minimum qualifications include a PhD or
equivalent degree in Computer Science or closely
related discipline. Preferred qualifications
include expertise in interdisciplinary computation, scholarship and teaching, and cultural
diversity. See details at http://nau.edu/HumanResources/Careers/Faculty-and-AdministratorOpenings under Job ID 601082. Contact: John
Georgas; Email: john.georgas@nau.edu

Northern Illinois University


Computer Science Department
Assistant Professor

effective interpersonal communication skills and


a commitment to teamwork and collegiality.
Northern Illinois University is an Affirmative
Action/Equal Opportunity Employer.
A pre-employment criminal background investigation is required.
Qualified individuals must submit a cover
letter, current curriculum vitae, a statement of
research vision, a statement of teaching interests,
and a list of three references. All materials must
be submitted as a single PDF file to applicants@
cs.niu.edu by January 31, 2015.

Pacific Northwest National Laboratory


Post Doc RA - Data Sciences and Analytics

The Computer Science Department at Northern


Illinois University invites applicants to the tenure-track appointments it anticipates making at
the rank of Assistant Professor to start in August
2015. Responsibilities include teaching, scholarship, grantsmanship, and service.
Candidates must have or expect to complete
a Ph.D. or equivalent degree in computer science
by August 16, 2015. Candidates from all research
areas are welcome, but preference will be given to
candidates with expertise in Data Science and Applied Algorithms.
Candidates must have expertise or evident
potential for quality teaching at both the undergraduate and graduate levels. Further, candidates
must show evidence of, or potential for, publishing in premiere peer-reviewed journals, developing an independent line of research, and securing
external funding. Finally, candidates must have

We are looking for a strongly motivated person


with excellent skills in social media analytics research. Themes of interest include the development, implementation, and resulting analyses related to social network analysis, human language
technologies, machine learning, infectious disease epidemiology, and data collection and analysis. See full posting: http://pnnl.jobs/richland-wa/
post-doctorate-ra-data-sciences-and-analytics/
EE0EA402605B479FA746CB2F31819861/job/
Candidates must have received a PhD within
the past five years from an accredited college or
university. Degree in physics, applied mathematics, computer science, epidemiology, quantitative biology, or closely related field preferred. Apply URL: http://goo.gl/ZvbL5o

Queens College (CUNY)


Tenure-Track Assistant Professor
The Department of Computer Science at Queens
College is accepting applications for a tenure-track
position in Computer Science at the Assistant Professor level starting Fall 2015. Consult http://www.
cs.qc.cuny.edu for further information.

Applications are invited for:-

Department of Computer Science and Engineering


Professors / Associate Professors / Assistant Professors
(Ref. 1415/078(255)/2)

The Department invites applications for Professorships / Associate Professorships / Assistant


Professorships in computer engineering to pursue new strategic research initiatives, to ll faculty openings
within current strengths and to teach in the new curriculum. The Department is looking for a leader and a
couple of young and aspiring professors for added momentum to its Computer Engineering Programme,
and in particular, talents in the following areas:
advanced architectural and 3D chip design for energy efcient computing; and
hardware security for cloud computing.
Applicants should have (i) a PhD degree; and (ii) a good scholarly record demonstrating potential for
teaching and research excellence. The appointees will (a) teach both undergraduate and postgraduate
courses; (b) develop a signicant independent research programme with external funding; and (c) supervise
postgraduate students. Appointments will normally be made on contract basis for two to three years initially
commencing August 2015, which, subject to performance and mutual agreement, may lead to longer-term
appointment or substantiation later. Applications will be accepted until the posts are lled.

Salary and Fringe Benets


Salary will be highly competitive, commensurate with qualications and experience. The University
offers a comprehensive fringe benet package, including medical care, plus a contract-end gratuity for
appointments of two years or longer, and housing benets for eligible appointees. Further information about
the University and the general terms of service for appointments is available at http://www.per.cuhk.edu.hk.
The terms mentioned herein are for reference only and are subject to revision by the University.

Application Procedure
Please send full resume, copies of academic credentials, publication list with abstracts of selected published
papers, details of courses taught and evaluation results (if any), a research plan and a teaching statement,
together with names of three to ve referees to the Dean of Engineering by e-mail to recruit@erg.cuhk.edu.hk.
Applicants should mark clearly the area(s) of their interests. The Personal Information Collection
Statement will be provided upon request. Please quote the reference number and mark Application
Condential on cover.

106

COM MUNICATIO NS O F TH E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Swarthmore College
Assistant Professor of Engineering
Swarthmore College invites applications for a
tenure-track position in the area of Computer/
Electrical Engineering at the Assistant Professor
level, to start during the Fall semester of 2015. A
doctorate in Computer or Electrical Engineering
is required. For more details on the position and
application instructions, visit https://academicjobsonline.org/ajo/jobs/4467.
Swarthmore has a strong institutional commitment to excellence through diversity in its
educational program and employment practices
and actively seeks and welcomes applications
from candidates with exceptional qualifications,
particularly those with demonstrable commitments to a more inclusive society and world.

Swarthmore College
Visiting Assistant Professor
Applications are invited for multiple 2-year visiting positions at the assistant professor level beginning Fall 2015.
Swarthmore College has a strong institutional
commitment to excellence through diversity and

inclusivity in its educational program and employment practices. The College actively seeks
and welcomes applications from candidates with
exceptional qualifications, particularly those
with demonstrable commitments to a more inclusive society.
Swarthmore College is a small, selective, liberal arts college located 10 miles outside of Philadelphia. The Computer Science Department offers
majors and minors at the undergraduate level.
We seek applicants who are enthusiastic
about teaching undergraduates and already
have teaching experience. Applicants should be
comfortable teaching a wide range of courses at
the introductory and intermediate level of CS. A
Ph.D. in CS by or near the time of appointment is
required.
We are particularly interested in applicants
whose areas will add to the breadth of our program. However, strong applicants in all areas will
be considered.
Applications will be accepted until the positions are filled. Applications should include a
vita, teaching statement, research statement, and
three letters of reference, at least one that speaks
to the candidates teaching ability. Applicants
must apply online at Academic Jobs Online http://
academicjobsonline.org/ajo/jobs/4689

Temple University
Department of Computer and Information
Sciences
Junior and Senior Tenure-Track Faculty
Positions
Applications are invited for tenure-track, open
rank, faculty positions in the CIS department at
Temple University.
The junior position is in systems area, including but not limited to: parallel computer architecture and languages, storage and database systems, distributed computing, software systems,
embedded computing & CPS, and security and
robustness.
The senior position for Associate or Full Professor is open to all areas of computer science/engineering. Applicants for the senior position are
expected to have an outstanding and continuing
track record of research and funding.
The CIS Department has two undergraduate
degree programs, one in Computer Science (CS)
and one in Information Science and Technology (IS&T), a masters program in CIS, a masters
program in IS&T, and a PhD program in CIS. The
department, recently moved to a new Science
Education and Research Center, has undergone
considerable growth in research in the past few
years, during which research funding, publication
rates, and the number of Ph.D. students has significantly increased. Located in Philadelphia, the
5th-largest city in the U.S., Temple University is a
comprehensive research institution that serves
more than 39, 000 students. It is the 26th largest
university in the United States and is one of the nations leading centers of professional education.
Please submit applications with all requested information online at https://academicjobsonline.org/ajo/jobs/4808. For further information check http://www.cis.temple.edu or
send email to Dr. Krishna Kant, Chair, Faculty
Search Committee at kkant@temple.edu with
Subject=TTPosition. Review of candidates will

Faculty Position Vacancies


Applications are invited for several tenure-track faculty positions at all ranks. Outstanding
candidates in all areas of Computer Science and Engineering will be considered. Areas
of particular interest are: computer architecture, networking, software systems, data
analytics (including machine learning, data science and related areas), and security (with
particular but not exclusive interest in applications of programming languages and cyber
physical systems). Hiring in the security and data science areas is part of a university-wide
CyberScience initiative (see www.ics.psu.edu/hire.html) to appoint exceptional candidates
who can advance algorithms, software and systems with a demonstrated commitment to
participating in interdisciplinary research.
The department has 30 tenure-track faculty in the major areas of computer science and
engineering. Fourteen members of our faculty are NSF Career Award recipients. Three faculty
members from the department have received the prestigious NSF PECASE Award. In recent
years, faculty in the department were awarded several large-scale research grants, including
the Collaborative Research Alliance for the Science of Security, a Collaborative Technology
Alliance for Network Science and an NSF Expeditions in Computing award. Further, the
faculty have received awards in computing and research infrastructure and instrumentation
grants from NSF, and are part of an DARPA/STARNET Center, an NSF ERC and NSF IGERT
team. The faculty are highly successful in obtaining funding from NSF, DARPA, ARL, DOE,
DTRA, AFOSR and AOR. There are state-of-the-art research labs for computer systems,
computer vision and robotics, microsystems design and VLSI, networking and security, high
performance computing, bioinformatics and virtual environments. The department offers a
graduate program with 34 Masters students and 137 Ph.D. students, and undergraduate
programs in computer science and computer engineering. The university is committed to
growing the faculty ranks and promoting interdisciplinary research toward cyber-enabled
discovery and design.
Penn State is a major research university and is ranked 3rd in the nation in industry-sponsored
research. Computer science is ranked 8th in the nation in research expenditures. U.S. News
and World Report consistently ranks Penn States College of Engineering undergraduate
and graduate programs among the top in the nation. Penn State is ranked 5th world wide in
Computer Science Citations according to Thomson-Reuters.
The university is located in the beautiful college town of State College in the center of
Pennsylvania. The State College area has 130,000 inhabitants and offers a wide variety of
cultural and outdoor recreational activities. The university offers outstanding events from
collegiate sporting events to fine arts productions. Many major population centers on the
east coast (New York, Philadelphia, Pittsburgh, Washington D.C., Baltimore) are only a few
hours drive away and convenient air services to several major hubs are operated by three
major airlines out of State College.
Applicants should hold a Ph.D. in computer science, computer engineering, or a closely related
field and should be committed to excellence in both research and teaching. Support will be
provided to the successful applicants for establishing their research programs. We strongly
encourage dual career couples and candidates from underrepresented groups to apply.
Nominations and applications will be considered until the positions are filled. Screening
of applicants will begin on November 1, 2014. Applicants should submit a statement of
professional interests, curriculum vitae, and the names and addresses of four references. Please
submit these items in a single PDF file electronically to job 54214 at apptrkr.com/534602
Nominations and applications will be considered until the positions are filled.
CAMPUS SECURITY CRIME STATISTICS: For more about safety at Penn State, and to review
the Annual Security Report which contains information about crime statistics and other
safety and security matters, please go to http://www.police.psu.edu/clery/ , which will also
provide you with detail on how to request a hard copy of the Annual Security Report.
Penn State is an equal opportunity,
affirmative action employer, and is
committed to providing employment
opportunities to minorities, women,
veterans, disabled individuals, and
other protected groups.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

107

CAREERS
begin on November 1, 2014 and will continue
until the positions are filled. Senior position
applicants, who are interested in the general
future directions of the department, can also directly contact the department chair Dr. Jie Wu at
jiewu@temple.edu with Subject=SeniorPosition.

The University of Alabama in Huntsville


Department of Computer Science
Assistant Professor
The Department of Computer Science of The University of Alabama in Huntsville (UAH) invites applicants for a tenure-track faculty position at the
Assistant Professor level for an opening in entertainment computing, in particular in computer
game development. The position is one part of
a multi-year strategic investment in entertainment computing and arts by the university, and
we seek someone able to help us build out the departments game computing portfolio. A commitment to keeping abreast of games technology is
an ongoing expectation for the hire. Professional
experience, especially related to game development, is a plus. A supplemental aptitude in cybersecurity, data analytics / data science, mobile or
distributed computing, or software engineering
is also a plus.
A Ph.D. in computer science or a closely related
area is required. The successful candidate will have
a strong interest in aiding our coordination with
peers in disciplines such as animation arts, music,
etc., and have a strong academic background, be
able to carry out research in areas typical for graph-

ics and serious games academic conferences, and


be keen on undergraduate education.
The department has a strong commitment to
excellence in teaching, research, and service; the
hire should have good communication, strong
teaching potential, and research accomplishments.
UAH is located in an expanding, high technology area, next door to one of the largest research
parks in the nation. Nearby are the NASA Marshall Space Flight Center, the Armys Redstone
Arsenal, and many high-tech industries. UAH also
has an array of research centers, including in information technology, modeling and simulation,
etc. In short, collaborative research opportunities are abundant, and many well-educated and
highly technically skilled people are in the area.
There is also access to excellent public schools
and inexpensive housing.
UAH has approximately 7500 students. UAH
Computer Science offers the BS, MS, and PhD degrees in Computer Science and the MS and PhD
degrees in modeling and simulation. Approximately 200 undergraduate majors and 175 graduate students are associated with the unit. Faculty
research interests are many and include cybersecurity, mobile computing, data science, software
engineering, visualization, graphics, multimedia,
AI, image processing, pattern recognition, and
distributed systems. Recent NSF figures indicate
the department ranks 30th in the nation in overall federal research funding.
Interested parties should submit a detailed
resume with references to Chair, Search Committee, Dept. of Computer Science, The University

Faculty Position in the Internet of Everything - from Sensing to Systems


in the Department of Electrical Engineering
Columbia Engineering is pleased to invite applications for faculty positions in the Department of Electrical
Engineering at Columbia University in the City of New York City. Applications at the assistant professor, and
in exceptional cases, at the associate professor and full professor levels, will be considered.
Applications are specifically sought in the interdisciplinary area spanning devices, circuits, embedded
hardware and software, and networks with expertise in low power sensing, communications, networking,
and big data processing. Candidates must have a Ph.D. or its professional equivalent by the starting date
of the appointment. Applicants for this position at the Assistant Professor and Associate Professors without
tenure must demonstrate the potential to do pioneering research and to teach effectively. Applicants for this
position at the tenured level (Associate or Full Professor) must have a demonstrated record of outstanding
research accomplishments, excellent teaching credentials and established leadership in the field.
The successful candidate is expected to contribute to the advancement of their field and the department
by developing an original and leading externally funded research program, and contributing to the
undergraduate and graduate educational mission of the Department. Columbia fosters multidisciplinary
research and encourages collaborations with academic departments and units across Columbia University.
This position particularly seeks candidates whose research focus intersects with the field of data
sciences and can take full advantage of the Institute for Data Science and Engineering at Columbia.
The Department is especially interested in qualified candidates who can contribute, through their research,
teaching, and/or service, to the diversity and excellence of the academic community.
For additional information and to apply, please see: http://engineering.columbia.edu/faculty-jobopportunities. Applications should be submitted electronically and include the following: curriculum-vitae
including a publication list, a description of research accomplishments, a statement of research and teaching
interests and plans, contact information for three experts who can provide letters of recommendation, and
up to three pre/reprints of scholarly work.
All applications received by December 1, 2014 will receive full consideration.
Please apply at: https://academicjobs.columbia.edu/applicants/Central?quickFind=59945
Applicants can consult www.ee.columbia.edu for more information about the department.
Columbia is an affirmative action/equal opportunity employer with a strong commitment to the quality of
faculty life.

108

COMM UNICATIO NS O F T H E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

of Alabama in Huntsville, Huntsville, AL 35899.


Qualified female and minority candidates are
encouraged to apply. Initial review of applicants
will begin in January 2015 and will continue until
a suitable candidate is found. UAH is an equal opportunity/affirmative action institution.

University of Arizona
Dept. of Computer Science
Lecturer/Sr. Lecturer/Professor of Practice
The Department of Computer Science at The University of Arizona seeks applicants for a teaching
position at any level (Lecturer, Senior Lecturer,
and Professor of Practice). This is a full-time,
benefits-eligible, non-tenure track appointment
with one-to-three year renewable academic year
contract. The level of appointment will depend
on the candidates qualifications and experience.
The most important criteria for the position
are demonstrated excellence in undergraduate
Computer Science education, especially with
large enrollment classes, and extensive knowledge of core Computer Science topics, e.g., programming languages, software engineering, and/
or computer systems and networks. Preference
will be given to candidates who have, or are close
to having, a PhD in Computer Science or related
field as well as teaching experience.
The Department of Computer Science at the
University of Arizona has 17 faculty members, 3
of whom are senior lecturers. It has a long history
of research accomplishment, influential software distribution, and excellent undergraduate
and graduate instruction. Current research and
teaching areas span most core areas of Computer
Science. The university is located in Tucson, a valley with desert landscape surrounded by mountain ranges. Tucson boasts a warm climate, 350
sunny days per year, with ample opportunities for
outdoor activities such as hiking, mountain biking, horseback riding, caving, and rock climbing.
More information about the University and its environs is available at www.whyUA.com.
The minimum requirement for the position
is an MS in Computer Science or closely related
discipline.
The University of Arizona is a committed
Equal Opportunity/Affirmative Action Institution. Women, minorities, veterans and individuals with disabilities are encouraged to apply.
Application Instructions
Current information regarding this position and
instructions for applying are available at www.
UACareers.com/56659. Review of applications
will begin on Nov 1, 2014, and continue until the
position is filled. Contact Person: Saumya Debray.
Email: search@cs.arizona.edu

University of California, Riverside


Bourns College of Engineering
Department of Computer Science and
Engineering
Faculty Positions
The Department of Computer Science and Engineering, University of California, Riverside
invites applications for multiple tenure-track
and/or tenured faculty positions to begin in the
2015-16 academic year. Priority will be given to

candidates, at all levels, in the following areas


of research: (1) High Performance and Scientific Computing, (2) Operating/Distributed/Networked Systems and Security, (3) Big Data, and
(4) Software Engineering; however, exceptional
candidates in all areas will be considered. Salary level will be competitive and commensurate
with qualifications and experience. Junior positions require a Ph.D. in Computer Science (or in
a closely related field) at the time of employment
and/or start of service period. Senior candidates
need to have a strong record of research, teaching, and graduate student mentorship, while junior candidates needs to show potential to excel
in these areas.
Full consideration will be given to applications received by January 2nd 2015. We will continue to consider applications until the positions
are filled. To apply, please register through the
weblink at http://www.engr.ucr.edu/facultysearch/. For inquiries and questions, please contact
us at search@cs.ucr.edu.
The University of California is an Equal Opportunity/Affirmative Action Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion,
sex, national origin, age, disability, protected
veteran status, or any characteristic protected
by law.

University of Chicago
Department of Computer Science
Associate Professor, Artificial Intelligence (AI)
The Department of Computer Science at the
University of Chicago invites applications from
exceptionally qualified candidates for faculty
positions at the rank of Associate Professor in
the area of Artificial Intelligence (AI). Outstanding researchers working in Artificial Intelligence,
which include both the theory of machine learning and applications to areas such as natural
language processing, computer vision, and computer systems are encouraged to apply.
The University of Chicago has the highest
standards for scholarship and faculty quality, is
dedicated to fundamental research, and encourages collaboration across disciplines. We encourage strong connections with researchers across
campus in areas such as the biological and physical sciences.
The Department of Computer Science (cs.
uchicago.edu) is the hub of a large, diverse computing community of two hundred researchers
focused on advancing foundations of computing
and driving its most advanced applications. Long
distinguished in theoretical computer science
and artificial intelligence, the Department is now
building strong systems and machine learning
groups. The larger community in these areas at
the University of Chicago includes the Department of Statistics, the Computation Institute, the
Toyota Technological Institute at Chicago (TTIC),
and the Mathematics and Computer Science Division at Argonne National Laboratory.
The Chicago metropolitan area provides a diverse and exciting environment. The local economy is vigorous, with international stature in
banking, trade, commerce, manufacturing, and
transportation, while the cultural scene includes
diverse cultures, vibrant theater, world-renowned
symphony, opera, jazz, and blues. The University

Faculty Positions Available in the


Department of Computer Science

ACM
2/3 p
$6,80
Next

The Department of Computer Science at Virginia Tech (www.cs.vt.edu) seeks applicants


for one tenure-track and two tenured faculty positions in three areas: artificial
intelligence/machine learning, software engineering, and data analytics/cyber security.
Candidates should have a Ph.D. in Computer Science or related field at the time of
appointment, a rank-appropriate record of scholarship and collaboration in computing
and interdisciplinary areas, sensitivity to issues of diversity in the campus community,
and will be required to teach at the undergraduate and/or graduate levels. Selected
candidates are expected to travel occasionally to attend professional conferences and
meetings.

Comp
(This
2/3 p
$6,40
Next
Web
Comp

Tenure-track Assistant Professor in Artificial Intelligence Blacksburg, VA


Candidates with expertise in artificial intelligence, including but not limited to natural
language processing, speech, computer vision and pattern recognition, perception,
knowledge representation, humans and AI, game theory, reinforcement learning,
machine learning, or reasoning under uncertainty are encouraged to apply. Candidates
should have the skills to establish and grow a successful, multidisciplinary research
group. Applications must be submitted online to http://jobs.vt.edu for posting
#TR0140110. Inquiries should be directed to Dr. Cliff Shaffer, Search Committee Chair,
shaffer@cs.vt.edu.

Comp
1/2 p
$1,15
any t
Bi-mo
Octob
Janu

The two tenured positions seek candidates who can present evidence of high-impact
research and publications in top-tier conferences and journals, a strong record of
garnering external funding for research and leading a strong research group, and national
and/or international visibility through leadership and service in the research community.
Associate/Full Professor in Software Engineering Blacksburg, VA
Candidates with research breadth and depth across several areas of software engineering,
including but not limited to program analysis, mobile applications, web-based software,
software quality, scripting languages, middleware, and parallel computing are
encouraged to apply. Applications must be submitted online to http://jobs.vt.edu for
posting #TR0140109. Inquiries should be directed to Dr. Eli Tilevich, Search Committee
Chair, tilevich@cs.vt.edu.

Acad
Multip
$425

Associate/Full Professor in Data Analytics/Cyber Security National Capital


Region (NCR)
Candidates with research depth and breadth in data analytics, data mining, "big data",
data science, or cyber security, including technologies for and applications in information
security, network security, and trustworthy computing are encouraged to apply.
Candidates working at the intersection of data analytics and cyber security are especially
encouraged. Candidates should present a proven ability to initiate and sustain
collaborations within computing as well as with application specialists. The Department
of Computer Science is home to the Discovery Analytics Center (http://dac.cs.vt.edu)
that leads big data research on campus. Computer science faculty also participate in
university-wide efforts at cyber security education and research (see:
http://www.cyber.vt.edu/).
The successful candidate will contribute to the research and graduate programs in NCR
and collaborate with faculty at Virginia Techs campus in Blacksburg, VA. The NCR
campus (www.ncr.vt.edu) is located near Washington, D.C./Falls Church area and
houses the Virginia Tech Research Center (www.ncr.vt.edu/arlington) in Arlington, VA.
Applications must be submitted online to http://jobs.vt.edu for posting #TR0140107.
Inquiries should be directed to Dr. Naren Ramakrishnan, Search Committee Chair,
naren@cs.vt.edu.
The Department of Computer Science has 37 research oriented tenure-track faculty and
~10 postdocs/research faculty. There are a total 12 NSF/DOE CAREER awardees in the
department. Research expenditures for FY2014 were $334 thousand per tenure-track
faculty member (i.e., a total of $12.2 million); total research funding at the beginning of
FY2015 was $42.8 million. BS, MS, and PhD degrees are offered, with a growing
enrollment of over 610 undergraduate majors (14% women) and over 225 PhD/MS
students. In 2010, CS@VT was ranked 5th in the country in recruiting quality of CS
undergrads by the Wall Street Journal. The department is in the College of Engineering,
whose undergraduate program was ranked 8th and graduate program was ranked 12th
among public engineering schools in 2014 by U.S. News & World Report.
Applicant screening will begin on December 15, 2014 and continue until each position
is filled. Early applications are encouraged. We welcome applications from women or
minorities. Salary for suitably qualified applicants is competitive and commensurate with
experience. Selected candidates must pass a criminal background check prior to
employment.
Virginia Tech is an AA/EEO employer; applications from members of underrepresented
groups are especially encouraged.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

109

CAREERS
is located in Hyde Park, a Chicago neighborhood
on the Lake Michigan shore just a few minutes
from downtown.
Applicants must have a doctoral degree in
Computer Science or a related field such as Mathematics or Statistics and be several years beyond
the Ph.D. Applicants are expected to have established an outstanding research program and will
be expected to contribute to the departments
undergraduate and graduate teaching programs.
All applicants must apply through the Universitys Academic Jobs website at http://tinyurl.com/
pfatjhn
To be considered as an applicant, the following materials are required:
cover letter,
curriculum vitae including a list of publications,
statement describing past and current research
accomplishments and outlining future research
plans, and
description of teaching philosophy, and
a reference contact list consisting of three
people
Review of complete applications will begin
January 15, 2015 and will continue until all available positions are filled.
All qualified applicants will receive consideration for employment without regard to race,
color, religion, sex, national origin, age, protected
veteran status or status as an individual with disability.
The University of Chicago is an Affirmative
Action / Equal Opportunity / Disabled / Veterans
Employer.

University of Chicago
Department of Computer Science
Assistant Professor, Artificial Intelligence (AI)
The Department of Computer Science at the
University of Chicago invites applications from
exceptionally qualified candidates for faculty
positions at the rank of Assistant Professor in
the area of Artificial Intelligence (AI). Outstanding researchers working in Artificial Intelligence,
which include both the theory of machine learning and applications to areas such as natural
language processing, computer vision, and computer systems are encouraged to apply.
The University of Chicago has the highest
standards for scholarship and faculty quality, and
encourages collaboration across disciplines. We
encourage strong connections with researchers
across campus in areas such as the biological and
physical sciences.
The Department of Computer Science (cs.
uchicago.edu) is the hub of a large, diverse computing community of two hundred researchers
focused on advancing foundations of computing and driving its most advanced applications.
Long distinguished in theoretical computer
science and artificial intelligence, the Department is now building strong systems and machine learning groups. The larger community
in these areas at the University of Chicago includes the Computation Institute, the Toyota
Technological Institute at Chicago (TTIC), the
Department of Statistics, and the Mathematics
and Computer Science Division of Argonne National Laboratory.

The Chicago metropolitan area provides a diverse and exciting environment. The local economy is vigorous, with international stature in
banking, trade, commerce, manufacturing, and
transportation, while the cultural scene includes
diverse cultures, vibrant theater, world-renowned
symphony, opera, jazz, and blues. The University
is located in Hyde Park, a Chicago neighborhood
on the Lake Michigan shore just a few minutes
from downtown.
Applicants must have completed all requirements for the PhD at time of appointment. The
PhD should be in Computer Science or a related
field such as Mathematics or Statistics. All applicants must apply through the Universitys
Academic Jobs website at http://tinyurl.com/
muzweou.
To be considered as an applicant, the following materials are required:
cover letter,
curriculum vitae including a list of publications,
statement describing past and current research
accomplishments and outlining future research
plans, and
description of teaching philosophy, and
three reference letters, one of which must
address the candidates teaching ability.

ESTIMATE: UDEL_102476FACULTYELECTRICCOMPENG
Reference
letter submission information will
PUBLICATION: COMMUNICATIONS OF THE
ACM
be provided during the application process.
Review of application materials will begin on
NEXT AVAILABLE ISSUE: DECEMBER
January 15, 2015 and continue until all available
positions are filled.
DEADLINE: MON 20TH
All qualified applicants will receive consid-

FACULTY POSITION IN ELECTRICAL


AND COMPUTER ENGINEERING
The Department of Electrical and Computer Engineering at the University of Delaware invites nominations and applications
for a tenure-track or tenured faculty position in electrical and computer engineering with a focus on nanoelectronics, high
performance computing, and cybersecurity. We also invite candidates that complement the department's traditional
strengths in (1) Computer Engineering, (2) Signal Processing, Communications & Controls, (3) Nanoelectronics,
Electromagnetics, and Photonics, and (4) Biomedical Engineering.
The University of Delaware is located in northern Delaware, which is in close proximity to a banking industry hub, and to
the US Armys Communications-Electronics Research, Development and Engineering Center (CERDEC) and supporting
businesses. Cybersecurity is a key area of focus for both industries and the University of Delaware has established
research and education partnerships with JP Morgan Chase, CERDEC, and several defense businesses that can provide
faculty members with research funding, data, and access to personnel working in cybersecurity. ECE initiatives are further
supported by over 40,000 square feet of departmental facilities, including a state-of-the art 7,000 sq ft clean room for
nano-fabrication, and fueled with over $10M/year in research expenditures.
Applicants should have a Ph.D. in electrical and computer engineering, computer science, or a closely related field. Candidates
should have a demonstrated research record in an area of electrical engineering or computer engineering commensurate with
their level of experience, have the potential to successfully secure competitive research awards from federal, state, and industry, have a passion and ability to teach core undergraduate courses and integrate research with teaching at the graduate level.
Candidates are expected to supervise Masters and Ph.D. students as well as mentor undergraduate research.
To submit applications, please visit apply.interfolio.com/27201 . Applications should consist of a short cover letter, curriculum vitae, separate statements of research and teach interests, and the names and contact information of four references. Review of applications will begin immediately and will continue until the position is filled. We desire to fill the position by September 1, 2015, but will consider later dates. For additional information about this position, please contact the
Search Committee Chairperson at goossen@udel.edu.
The University of Delaware is an Equal Opportunity Employer which encourages applications
from minority group members, women, individuals with a disability and veterans. The
University's Notice of Non-Discrimination can be found at http://www.udel.edu/aboutus/legalnotices.html. Employment offers will be conditioned upon successful completion of a criminal background check. A conviction will not necessarily exclude you from employment.

110

CO MM UNICATIO NS O F T H E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

eration for employment without regard to race,


color, religion, sex, national origin, age, protected
veteran status or status as an individual with disability.
The University of Chicago is an Affirmative
Action / Equal Opportunity / Disabled / Veterans
Employer.

University of Chicago
Department of Computer Science
Sr. Lecturer
The Department of Computer Science at the
University of Chicago invites applications for the
position of Sr. Lecturer. This position carries responsibility for teaching undergraduate computer science courses in the fall, winter and spring
quarters and serving as the academic associate
director of the Masters Program in Computer
Science (MPCS).
The academic associate director of the MPCS
is responsible for the overall design and execution of the MPCS academic curriculum, including
revisions and additions. The academic director
also acts as the primary liaison for academic affairs between the MPCS and departmental leadership, as well as with other departments and institutes of the University.
Specific duties include the preparation of
the course schedule for each academic year (in
consultation with MPCS leadership, lecturers,
and adjunct faculty), advising students on their
course selections, managing the MPCSs Practicum program, advising lecturers and adjunct
faculty members on pedagogy, course design,
and course issues when they arise, and leading
searches for new MPCS lecturers.
Applicants must have a PhD in Computer

Science or a related field and have experience


teaching Computer Science at an undergraduate level, preferably introductory programming
and upper-level systems courses. The successful
candidate will have exceptional competence in
teaching, curriculum development experience,
excellent organizational and leadership skills,
experience with developing and supporting innovative co-curricular activities, and superior
academic credentials.
The Chicago metropolitan area provides a diverse and exciting environment. The local economy is vigorous, with international stature in
banking, trade, commerce, manufacturing, and
transportation, while the cultural scene includes
diverse cultures, vibrant theater, world-renowned
symphony, opera, jazz and blues. The University
is located in Hyde Park, a Chicago neighborhood
on the Lake Michigan shore just a few minutes
from downtown.
Applicants must apply on line at the University of Chicago Academic Careers website at http://
tinyurl.com/nfdla44.
Applicants must upload a cover letter, curriculum vitae with a list of publications and a one
page teaching statement. In addition, three reference letters that address the candidates teaching qualifications will be required. Reference
submission information will be provided during
the application process. Review of complete applications, including reference letters, will begin
January 15, 2015, and continue until the position
is filled.
All qualified applicants will receive consideration for employment without regard to race,

color, religion, sex, national origin, age, protected veteran status or status as an individual with
disability.
The University of Chicago is an Affirmative
Action / Equal Opportunity / Disabled / Veterans
Employer.

University of Connecticut (UConn)


Assistant, Associate or Full Professor
The University of Connecticut (UConn) solicits
applications for two full-time tenure-track faculty
positions at all ranks in the Computer Science &
Engineering Department to conduct research,
education and outreach.
The research specialties for the first position
include, but are not limited to, big data analysis in genomics, genomics data interpretation,
machine learning and visualization, biological
databases, biomedical literature mining, bioinformatics, systems biology, and related areas.
The position involves collaboration with the new
UCONN Institute for Systems Genomics.
The research specialties for the second position are in system verification, validation, modeling and/or design methodologies with an emphasis on Model-Based and Platform-Based Design
principles. The position entails collaboration
with the United Technology Corporation (UTC)
and the UTC Institute for Advanced System Engineering.
For complete details please see our website at
http://www.cse.uconn.edu/current-job-listings/.
UConn is an EEO/AA employer.

University of Illinois at Chicago


Department of Computer Science
Multiple Faculty Positions
The Computer Science Department at the University of Illinois at Chicago invites applications in
all areas of Computer Science for multiple tenure-track positions at the rank of Assistant Professor (exceptional candidates at other ranks will
also be considered). We are looking to fill:
(a) One position in Big Data, where our focus
ranges from data management and analytics to
visualization and applications involving large volumes of data.
(b) Two positions in Computer Systems, where
we are looking for candidates whose work is experimental and related to one or more of the following topics: operating systems, networking,
distributed computing, mobile systems, programming languages and compilers, security,
software engineering, and other broadly related
areas.
(c) One position for which candidates from all
other areas will be considered.
The University of Illinois at Chicago (UIC)
ranks among the nations top 50 universities
in federal research funding and is ranked 4th
best U.S. University under 50 years old by Times
Higher Education. The Computer Science department has 24 tenure-track faculty representing
major areas of computer science, and offers BS,
MS and PhD degrees. Our faculty includes ten
NSF CAREER award recipients. We have annual

Association for Computing Machinery (ACM)


Chief Executive Officer
ACM, the Association for Computing Machinery, invites applications for the position of
Chief Executive Officer (CEO).
ACM is the oldest and largest educational and scientific computing society with 108,000
members worldwide. The association has an annual budget of $60 Million, 75 full-time staff
in New York and Washington DC, a rich publications program that includes 50 periodicals
in computing and hundreds of conference proceedings, a dynamic set of special interest
groups (SIGs) that run nearly 200 conferences/symposia/workshops each year, initiatives in
India, China, and Europe, and educational and public policy initiatives. ACM is the worlds
premiere computing society.
The ACM CEO serves as the primary executive responsible for the formulation and
implementation of ACM strategic direction, for representing ACM in the worldwide computing
community, and for overall management of the affairs of the association. The successful
candidate will have a high professional standing in the computing field, executive experience,
leadership skills, and a vision of the future of professional societies and computing. The
CEO reports to the ACM President. The CEO is not required to work from ACMs New York
headquarters, but he or she must be able to travel frequently to headquarters and other ACM
meetings and venues. The full job description can be found at: ceosearch.acm.org
Interested applicants should contact the ACM CEO Search Committee: ceosearch@acm.org
The ACM is an equal opportunity employer. All qualified applicants will receive consideration for
employment without regard to race, color, religion, sex, national origin, age, protected veteran status
or status as an individual with disability.

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

111

CAREERS
research expenditures of $8.4M, primarily federally funded. UIC is an excellent place for interdisciplinary workUIC houses the largest medical
school in the country, and our faculty are engaged
with several cross-departmental collaborations
with faculty from health sciences, social sciences
and humanities, urban planning, and the business school. UIC has an advanced networking infrastructure in place for data-intensive scientific
research that is well-connected regionally, nationally and internationally. UIC also has strong
collaborations with Argonne National Laboratory and with the National Center for Supercomputing Applications, with programs in place for
faculty members to apply for time on their highperformance supercomputing systems.
Chicago epitomizes the modern, livable, vibrant city. Located on the shore of Lake Michigan,
it offers an outstanding array of cultural and culinary experiences. As the birthplace of the modern
skyscraper, Chicago boasts one of the worlds tallest and densest skylines, combined with a 8100acre park system and extensive public transit and
biking networks. Its airport is the second busiest
in the world, with frequent non-stop flights to
virtually anywhere. Yet the cost of living, whether
in an 88th floor condominium downtown or on
a tree-lined street in one of the nations finest
school districts, is surprisingly low.
Applications must be submitted at https://
jobs.uic.edu/. Please include a curriculum vitae,
teaching and research statements, and names
and addresses of at least three references in the
online application. Applicants needing additional information may contact the Faculty Search

Chair at search@cs.uic.edu.
For fullest consideration, please apply by December 1, 2014. We will continue to accept and
process applications until all the positions are
filled. The University of Illinois is an Equal Opportunity, Affirmative Action employer. Minorities,
women, veterans and individuals with disabilities
are encouraged to apply.

University of Illinois at Chicago


Department of Computer Science
Non-tenure Track Full Time Teaching Faculty
The Computer Science Department at the University of Illinois at Chicago is seeking one or
more full-time, non-tenure track teaching faculty
members beginning Fall 2015. The department
is committed to effective teaching, and candidates would be working alongside five full-time
teaching faculty with over 75 years of combined
teaching experience and 10 awards for excellence
in teaching. Content areas of interest include introductory programming/data structures, theory/
algorithms, artificial intelligence, computer systems, and software design. The teaching load is
three undergraduate courses per semester, with a
possibility of teaching at the graduate level if desired. Candidates must hold a masters degree or
higher in Computer Science or a related field, and
have demonstrated evidence of effective teaching.
The University of Illinois at Chicago (UIC) is
ranked in the top-5 best US universities under
50 years old (Times Higher Education), and one
of the top-10 most diverse universities in the US

Faculty
Search

ShanghaiTech University
ShanghaiTech University invites highly qualified candidates to fill multiple tenuretrack/tenured faculty positions as its core team in the School of Information Science
and Technology (SIST). Candidates should have exceptional academic records by
international standards or demonstrate strong potential in cutting-edge research
areas of information science and technology. English fluency is required and overseas
academic experience is highly desired.
ShanghaiTech aims to become a world-class research university for training future
scientists, entrepreneurs, and technological leaders. Located in Zhangjiang High-Tech
Park in the cosmopolitan Shanghai, we shall trail-blaze a new education system in China.
Besides establishing and maintaining a world-class research profile, faculty candidates
must also contribute substantially to graduate and undergraduate education.
Academic Disciplines: We welcome candidates in all cutting edge areas of
information science and technology. Our recruitment focus includes, but is not limited
to: computer architecture and software, cloud and high performance computing,
computational foundations, data mining and analysis, visualization, computer vision,
machine learning, data sciences and statistics, IC designs, solid-state electronics,
high speed and RF circuits, embedded systems, intelligent and signal processing
systems, smart energy/power devices and systems, next-generation networking,
control systems, robotics, sensor networks as well as inter-disciplinary areas involving
information science and technology.
Compensation and Benefits: Salary and startup funds are highly competitive,
commensurate with experience and academic accomplishment. We also offer a
comprehensive benefit package to employees and eligible dependents, including
housing benefits. All regular faculty members will join our new tenure-track system
commensurate with international practice for tenure evaluation and promotions.
Qualifications:
A well articulated research plan and demonstrated record/potentials;
Ph.D. (Electrical Engineering, Computer Engineering, Computer Science, Statistics,
or related field);
A minimum relevant research experience of 4 years.
Applications: Submit (in English, PDF) a cover letter, a 2-page research plan, a
CV plus copies of 3 most significant publications, and names of three referees to:
sist@shanghaitech.edu.cn by December 31st, 2014 (or until positions are filled).
More information is at http://www.shanghaitech.edu.cn.

112

COMM UNICATIO NS O F T H E ACM

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

(US News and World Report). UICs hometown of


Chicago epitomizes the modern, livable, vibrant
city. Located on the shore of Lake Michigan, it offers an outstanding array of cultural and culinary
experiences. As the birthplace of the modern skyscraper, Chicago boasts one of the worlds tallest
and densest skylines, combined with an 8100acre park system and extensive public transit and
biking networks. Its airport is the second busiest
in the world, with frequent non-stop flights to
most major cities. Yet the cost of living, whether
in a high-rise downtown or a house on a treelined street in one of the nations finest school
districts, is surprisingly low.
Minimum qualifications include a Masters
degree or higher in Computer Science or a related field and demonstrated evidence of effective
teaching. Applications are submitted online at
https://jobs.uic.edu/. In the online application,
please include your curriculum vitae, the names
and addresses of at least three references, a statement providing evidence of effective teaching,
and a separate statement describing your past experience in activities that promote diversity and
inclusion and/or plans to make future contributions. Applicants needing additional information
may contact Professor Joe Hummel, Search Committee Chair, jhummel2@uic.edu.
For fullest consideration, please apply by
January 15, 2015. We will continue to accept and
process applications until the positions are filled.
UIC is an equal opportunity and affirmative action
employer with a strong institutional commitment
to the achievement of excellence and diversity
among its faculty, staff, and student body. Women and minority applicants, veterans and persons
with disabilities are encouraged to apply, as are
candidates with experience with or willingness to
engage in activities that contribute to diversity and
inclusion.

University of Illinois at UrbanaChampaign


Department of Electrical and Computer
Engineering (ECE)
Faculty Positions, at all areas and levels
The Department of Electrical and Computer Engineering (ECE) at the University of Illinois at
Urbana-Champaign invites applications for faculty positions at all areas and levels in computing, broadly defined, with particular emphasis on
big data and its applications, including complex
data analysis and decision science, scalable hardware and software systems; parallel, high-performance, and energy-efficient computing; reliable
and secure computing; wired/wireless/social networking & distributed computing; mobile, wearable sensing & applications; and bioinformatics
& systems biology, among other areas. From the
transistor and the first computer implementation based on von Neumanns architecture to
the Blue Waters petascale computer the fastest
computer on any university campus, ECE Illinois
faculty have always been at the forefront of computing research and innovation. Applications are
encouraged from candidates whose research programs specialize in core as well as interdisciplinary areas of electrical and computer engineering.
The department is engaged in exciting new and
expanding programs for research, education, and
professional development, with strong ties to in-

dustry. This year the ECE Department has moved


into its new 235,000 sq. ft. net-zero energy design
building, which is a major campus addition with
maximum space and minimal carbon footprint.
Qualified senior candidates may also be considered for tenured full Professor positions as
part of the Grainger Engineering Breakthroughs
Initiative (http://graingerinitiative.engineering.
illinois.edu), which is backed by a $100-million
gift from the Grainger Foundation to support research in big data and bioengineering, broadly
defined. In addition, the University of Illinois
is home to Blue Waters - one of the most powerful supercomputers in the world, supported by
the National Science Foundation and developed
and operated by the University of Illinois National Center for Supercomputing Applications.
Qualified candidates may be hired as Blue Waters
Professors who will be provided substantial allocations on and expedited access to the supercomputer. To be considered as a Blue Waters Professor, candidates need to mention Blue Waters as
one of their preferred research areas in their online application, and include a reference to Blue
Waters in their cover letter.
Please visit http://jobs.illinois.edu to view the
complete position announcement and application instructions. Full consideration will be given
to applications received by November 15, 2014,
but applications will continue to be accepted until all positions are filled.
Illinois is an EEO Employer/Vet/Disabled
www.inclusiveillinois.illinois.edu.

Technology Administration. Graduate degree


programs, MS and PhD, are offered in both Information Systems and Human-Centered Computing, including an innovative online MS in IS
program. Consistent with the UMBC vision, the
Department has excellent teaching facilities,
state-of-the-art laboratories, and outstanding
technical support. UMBCs Technology Center,
Research Park, and Center for Entrepreneurship
are major indicators of active research and outreach. Further details on our research, academic
programs, and faculty can be found at http://
www.is.umbc.edu/. Members of under-represented groups including women and minorities are
especially encouraged to apply.
Electronic submission of application is required at http://apply.interfolio.com/25741. All
applications must be submitted as PDF Files,
which include a cover letter, CV, a one-page statement of teaching interests, a one-page statement
of research interests and names and contact
information for at least three references. For inquiries, please contact Barbara Morris at (410)
455-3795 or bmorris@umbc.edu. Review of applications will begin immediately and will continue
until the position is filled. This position is subject
to the availability of funds.
UMBC is an Affirmative Action/Equal Opportunity Employer and welcomes applications from
minorities, women, veterans and individuals with
disabilities.

University of Maryland Baltimore


County (UMBC)

An Honors University in Maryland


Information Systems Department
Assistant Professor, Human-Centered
Computing

An Honors University in Maryland


Information Systems Department
Tenure Track position on Data Science/Big
Data, Assistant Professor
The Information Systems (IS) Department at
UMBC invites applications for a tenure-track faculty position at the Assistant Professor level starting August 2015. We are searching for a candidate
with research interests and experience in Data Science, a research area with high growth and impact
in environmental sciences, health care, security,
and many others. The ideal candidate will have
expertise in conducting large-scale data science
research, such as extracting knowledge from data
of increasing sizes, velocity, and variety to improve
decision making in one or more application domains closely relevant to active research areas in
the IS department. The research areas in the department are: Artificial Intelligence/Knowledge
Management, Databases and Data Mining, Human Centered Computing, Software Engineering,
and Health Information Technology. Candidates
must have earned a PhD in Information Systems
or a related field no later than August 2015.
Candidates should be engaged in research
that fosters collaboration with at least one of
the areas. Preference will be given to those who
can collaborate with current faculty. Candidates
should have a strong potential for excellence in
research, the ability to develop and sustain an externally funded research program, and the ability
to contribute to our graduate and undergraduate
teaching mission.
The Department offers undergraduate degrees in Information Systems and Business

University of Maryland Baltimore


County (UMBC)

The Information Systems Department at UMBC


invites applications for a tenure-track faculty position at the Assistant Professor level in the area
of human-centered computing starting August
2015. Candidates must have earned a PhD in a
related field no later than August 2015. Outstanding candidates in all areas of human-centered
computing research are encouraged to apply.
Ideal candidates will be engaged in research that
spans several areas with preference given to those
who can collaborate with the current faculty. Candidates should have a strong potential for excellence in research, the ability to develop and sustain an externally funded research program, and
the capacity to contribute to our graduate and
undergraduate teaching mission.
The Department offers undergraduate degrees in Information Systems and Business
Technology Administration. Graduate degree
programs, MS and PhD, are offered in both Information Systems and Human-Centered Computing, including an innovative online MS in IS
program. Consistent with the UMBC vision, the
Department has excellent teaching facilities,
state-of-the-art laboratories, and outstanding
technical support. UMBCs Technology Center,
Research Park, and Center for Entrepreneurship
are major indicators of active research and outreach. Further details on our research, academic
programs, and faculty can be found at http://
www.is.umbc.edu/. Members of under-represented groups including women and minorities are
especially encouraged to apply.
DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

113

CAREERS
Electronic submission of application is required at http://apply.interfolio.com/25742 . All
applications must be submitted as PDF Files,
which include a cover letter, CV, a one-page statement of teaching interests, a one-page statement
of research interests and names and contact
information for at least three references. For inquiries, please contact Barbara Morris at (410)
455-3795 or bmorris@umbc.edu. Review of applications will begin immediately and will continue
until the position is filled. This position is subject
to the availability of funds.
UMBC is an Affirmative Action/Equal Opportunity Employer and welcomes applications from
minorities, women, veterans and individuals with
disabilities.

University of Maryland Baltimore


County (UMBC)
An Honors University in Maryland
Information Systems Department
Assistant Professor, Software Engineering
The Information Systems Department at UMBC
invites applications for a tenure-track faculty position at the Assistant Professor level in the area
of software engineering starting August 2015.
Outstanding candidates in other areas will also
be considered.
Candidates must have an earned PhD in Information Systems or a related field no later than
August 2015. Individuals engaged in software engineering research with emphasis on empirical
research, process and quality improvement, and

healthcare IT are especially encouraged to apply.


Candidates should have a strong potential for
excellence in research, the ability to develop and
sustain an externally funded research program,
and the ability to contribute to our graduate and
undergraduate teaching mission.
The Department offers undergraduate degrees in Information Systems and Business
Technology Administration as well as both the
MS and PhD in Information Systems. In addition, the Department offers an MS and PhD in
Human-Centered Computing. Consistent with
the UMBC vision, the Department has excellent
technical support and teaching facilities as well
as outstanding laboratory space and state of the
art technology. UMBCs Technology Center, Research Park, and Center for Entrepreneurship are
major indicators of active research and outreach.
Further details on our research, academic programs, and faculty can be found at http://www.
is.umbc.edu/. Under-represented groups including women and minorities are especially encouraged to apply.
Electronic submission of application is required at http://apply.interfolio.com/26424. All
applications must be submitted as PDF Files,
which include a cover letter, CV, a one-page statement of teaching interests, a one-page statement
of research interests and names and contact
information for at least three references. For inquiries, please contact Barbara Morris at (410)
455-3795 or bmorris@umbc.edu. Review of applications will begin immediately and will continue
until the position is filled. This position is subject
to the availability of funds.

UMBC is an Affirmative Action/Equal Opportunity Employer and welcomes applications from


minorities, women, veterans, and individuals
with disabilities.

University of Michigan-Dearborn
Assistant/Associate Professors in Computer
and Information Science
The Department of Computer and Information
Science (CIS) at the University of Michigan-Dearborn invites applications for several tenure-track
faculty positions. Applicants from all areas of
computer science will be considered, but preference will be given to those from security and from
big data. The expected starting date is September
1st, 2015. Review of applications will begin immediately and continue until suitable candidates are
appointed. Rank and salary will be commensurate with qualifications and experience. We offer
competitive salaries and start-up packages.
Qualified candidates must have, or expect to
have, a Ph.D. in computer science or a closely related discipline by the time of appointment and
will be expected to do scholarly and sponsored
research, as well as teaching at both the undergraduate and graduate levels. Candidates at the
associate professor rank should already have an
established funded research program. The CIS
Department offers several BS and MS degrees, and
participates in several interdisciplinary degree programs, including a Ph.D. program in information
systems engineering. The current research areas in
the department include computer graphics, data

ACMs Career & Job Center


Looking for your next IT job?
Visit ACMs Career & Job Center at:

http://jobs.acm.org
Offering a host of career-enhancing benefits:

A highly targeted focus on job opportunities in the computing industry

Access to hundreds of job postings

Resume posting keeping you connected to the employment market while


letting you maintain full control over your confidential information

An advanced Job Alert system notifies you of new opportunities matching your criteria

A content library of the best career articles compiled from hundreds of sources

The ACM Career & Job Center is the perfect place to begin
searching for your next employment opportunity!

http://jobs.acm.org
114

CO M MUNICATIO NS O F TH E AC M

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

management, multimedia systems and gaming,


networking, security, wearable sensing and health
informatics, and software engineering. These areas
of research are supported by several established
labs and many of these areas are currently funded
by federal agencies and industries. The department currently has two NSF CAREER recipients.
The University of Michigan-Dearborn is located
in the southeastern Michigan area and offers excellent opportunities for faculty collaboration with
many industries. We are one of three campuses
forming the University of Michigan system and are a
comprehensive university with over 9,000 students.
The University of Michigan-Dearborn is dedicated to the goal of building a culturally-diverse and
pluralistic faculty committed to teaching and working in a multicultural environment, and strongly encourages applications from minorities and women.
A cover letter, curriculum vitae, teaching
statement, research statement, and the names
and contact information of three references
should be sent to,
Dr. William Grosky, Chair
Department of Computer and Information
Science
University of Michigan-Dearborn
4901 Evergreen Road
Dearborn, MI 48128-1491
Email: wgrosky@umich.edu
Internet: http://umdearborn.edu/cecs/CIS/
Phone: 313.583.6424
Fax: 248.856.2582
The University of Michigan-Dearborn is an
equal opportunity/affirmative action employer.

University of Minnesota-Twin Cities


The Department of Computer Science and
Engineering
Multiple Tenure-Track Faculty Positions
The Department of Computer Science and Engineering at the University of Minnesota-Twin Cities invites applications for multiple tenure-track
faculty positions in support of a University-wide
initiative (MnDRIVE) on robotics, sensors, and
advanced manufacturing (http://cse.umn.edu/
mndrive). Specific topics of interest for the positions include manipulation, locomotion, sensing and estimation, distributed decision making,
machine learning, computer vision, robot design,
algorithmic foundations, and embedded systems.
Applicants from other areas will be considered
as long as they address how their work fits into
the MnDRIVE theme. Senior applicants will also
be considered. We encourage applications from
women and under-represented minorities. Candidates should have a Ph.D. in Computer Science or
a closely related discipline at the time of appointment. The positions are open until filled, but for
full consideration apply at http://www.cs.umn.
edu/employment/faculty [www.cs.umn.edu] by
December 15, 2014. The University of Minnesota
is an equal opportunity employer and educator.

The University of Mississippi


Department of Computer and Information Science
Assistant Professor
The Department of Computer and Information Science at the University of Mississippi invites applica-

tions for a tenure-track Assistant Professor position.


An applicant must hold a PhD or equivalent
in computer science or a closely related field by
August 15, 2015. An applicant must have the
ability to teach both graduate and undergraduate students, conduct research in major areas of
computer and information science, and supervise MS and PhD students. An applicant must
provide evidence of research potential, effective
communication skills, and a broad background
in computing.
The Department has an ABET/CAC-accredited undergraduate program and MS and PhD
programs. See the website http://www.cs.olemiss.
edu for more information.
The University is located in Oxford, one of
Americas top-ranked college towns. Oxford has
a wonderful small-town atmosphere with affordable housing and excellent schools.
Individuals may apply online at http://jobs.
olemiss.edu. The applicant is asked to supply a
cover letter, curriculum vitae, research and teaching statements, and contact information for four
references. Review of applications will begin immediately and continue until the position is filled
or an adequate applicant pool is reached.
The University of Mississippi is an EOE/AA/
Minorities/Females/Vet/Disability/Title VI/Title
IX/504/ADA/ADEA employer.

University of Nevada, Reno


CSE Department
Three Tenure-track Assistant Professor Faculty
positions in CSE
UNIVERSITY OF NEVADA, RENO. The CSE Department invites applications for three tenuretrack Assistant Professor faculty positions in CSE.
One position is in the area of unmanned autonomous systems (UAS), with emphasis on probabilistic robotics, multi-robot systems, planning,
mapping and localization, AI and machine learning. The other two positions are in the area of big
data, with emphasis on database systems, data
management, data mining, scalable analytics, information visualization, data-intensive computing, machine learning, software systems, cloud
computing. For the first big data position, preference will be given to candidates with experience
in massive data processing for environmental or
renewable energy research, while for the second
to candidates with experience in big data for security and privacy. The CSE Department is dynamic
and plans to strategically grow in the future. The
department has several faculty with NSF Career
awards and are leaders in statewide and multistate multi-million dollar NSF awards. Our research is supported by NSF, DoD, NASA, Google,
Microsoft and AT&T. The departments annual
research expenditures have exceeded $2M in past
years. We offer BS, MS, and Ph.D. degrees and
have strong research and education programs in
Intelligent Systems, Networks, Software Systems,
and Games. Applicants must have a Ph.D. in
Computer Science or Computer Engineering by
July 1, 2015. For the big data positions the Ph.D.
degree can also be in Information Systems or Information Science. Candidates must be strongly
committed to excellence in research and teaching
and should demonstrate potential for developing
robust externally funded research programs. For
the UAS position apply online at https://www.

unrsearch.com/postings/16364. For the big data


positions apply at https://www.unrsearch.com/
postings/16363. Review of applications begins
December 1, 2014. Full consideration will be
given to those who apply by January 10, 2015. Inquiries should be directed to Ms. Lisa Cody, lacody@unr.edu. UNR, Nevadas land-grant University, has over 19,000 students. Reno is a half-hour
drive to beautiful Lake Tahoe, an excellent area
for a wide range of outdoor activities. San Francisco is within a four-hours drive. UNR is an Equal
Opportunity/Affirmative Action Institution.

The University of North Texas


Department of Computer Science and
Engineering
Faculty Position in Computer Systems
The Department of Computer Science and Engineering at the University of North Texas (UNT)
is seeking candidates with experience and established research for a faculty position at the Assistant Professor level (tenure-track) or the Associate
Professor level (tenured or tenure-track) beginning August 15, 2015. The department plans to
build on its existing strengths in Computer Systems, broadly conceived, such as operating systems, runtime systems, storage systems, distributed systems and embedded systems. Current
faculty strengths in systems area include multicore and many-core architectures, emerging
memory technologies, resilient, secure and survivable systems, virtualization, and performance
measurement and tuning. An ideal candidate will
have demonstrated research capabilities supplementing our strengths and teaching at all levels
of instruction. A Ph.D. in Computer Engineering,
Computer Science or a closely related field, along
with experience in seeking and securing extramural funding for research and high quality publication record are required.
The Computer Science and Engineering department is home to 859 bachelors students, 153 masters students and 92 Ph. D. students. UNT CSE department is the lead academic institution of the NSF
Industry/University Cooperative Research Center
for Net-centric and Cloud Software and Systems. Additional information about the department and the
center are available at the websites: www.cse.unt.
edu and netcentric.cse.unt.edu, respectively.
Application Procedure:
All applicants must apply online to:
facultyjobs.unt.edu/applicants/
Central?quickFind=52073
Submit nominations and questions
regarding
the position to Dr. Krishna Kavi
(kavi@cse.unt.edu).
Application Deadline:
The committee will begin its review of applications on December 1, 2014 and continue to accept and review applications until the positions
are filled.
The University:
As the nations 24th largest public university and
the largest, most comprehensive in the DallasFort Worth area, UNT is dedicated to providing
an excellent educational experience to its 36,000
students while powering the North Texas region,

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

115

CAREERS
state and nation through innovative education
and research. A student-focused public research
university with an emphasis on sustainability,
UNT graduated 8,700 students last year from its
12 colleges and schools and offers 98 bachelors,
82 masters and 36 doctoral degree programs,
many nationally and internationally recognized.
UNTs ultimate mission is to give a green light to
greatness by helping its students, region, state
and nation excel. UNT is strategically located in
Denton, Texas, a vibrant city with a lively arts and
music culture, at the northern end of the DallasFort Worth metroplex. The DFW area has more
than six million people, with significant economic growth, numerous industrial establishments,
and excellent school districts.
The University of North Texas is an AA/ADA/
EOE committed to diversity in its educational
programs.

University of Oregon
Department of Computer and Information
Science
Faculty Position
Assistant Professor
The Department of Computer and Information
Science (CIS) seeks applications for two tenure
track faculty positions at the rank of Assistant
Professor, beginning Fall 2015. The University of
Oregon is an AAU research university located in
Eugene, two hours south of Portland, and within
one hours drive of both the Pacific Ocean and the
snow-capped Cascade Mountains.
The open faculty positions are targeted towards the following three areas: 1) theoretical
computer science, 2) distributed systems, and 3)
data sciences. We are particularly interested in
applicants whose research areas complement existing strengths in the department and support interdisciplinary research efforts. Applicants must
have a Ph.D. in computer science or closely related field, a demonstrated record of excellence in
research, and a strong commitment to teaching. A
successful candidate will be expected to conduct
a vigorous research program and to teach at both
the undergraduate and graduate levels.
We offer a stimulating, friendly environment
for collaborative research both within the department -- which expects to grow substantially in the
next few years -- and with other departments on
campus. The CIS Department is part of the College of Arts and Sciences and is housed within the
Lorry Lokey Science Complex. The department
offers B.S., M.S. and Ph.D. degrees. More information about the department, its programs and faculty can be found at http://www.cs.uoregon.edu.
Applications will be accepted electronically
through the departments web site. Application information can be found at http://www.
cs.uoregon.edu/Employment/. To ensure consideration, please submit application materials by
January 15, 2015. The position will remain open
until filled. Please address any questions to faculty.search@cs.uoregon.edu.
The University of Oregon is an equal opportunity/affirmative action institution committed to
cultural diversity and is compliant with the ADA.
The University encourages all qualified individuals to apply, and does not discriminate on the basis of any protected status, including veteran and
disability status.
116

CO M MUNICATIO NS O F TH E AC M

University of Rochester
Department of Computer Science
Faculty Positions in Computer Science:
Experimental Systems
The University of Rochester Department of Computer Science seeks applicants for a tenure track
position in the broad areas of experimental systems research (including but not limited to architecture, data-driven systems, mobile and embedded systems, networks, operating systems, parallel
and distributed systems, and security). However,
candidates in all areas of computer science who
see a good synergistic fit with research initiatives
at the university are encouraged to apply, especially candidates from groups underrepresented
in higher education. Candidates must have a PhD
in computer science or a related discipline.
Apply online at
https://www.rochester.edu/fort/csc
Consideration of applications at any rank will
begin immediately and continue until all interview slots are filled. Candidates should apply no
later than January 1, 2015 for full consideration.
Applications that arrive after this date incur a
probability of being overlooked or arriving after
the interview schedule is filled up.
The Department of Computer Science is a research-oriented department with a distinguished
history of contributions in systems, theory, artificial intelligence, and HCI. We have a collaborative culture and strong ties to electrical and computer engineering, cognitive science, linguistics,
and several departments in the medical center.
We also have a nascent Institute for Data Science
with potential for synergistic collaboration opportunities and more joint hires. Over the past
decade, a third of the departments PhD graduates have won tenure-track faculty positions, and
its alumni include leaders at major research laboratories such as Google, Microsoft, and IBM.
The University of Rochester is a private, Tier I
research institution located in western New York
State. It consistently ranks among the top 30 institutions, both public and private, in federal funding for research and development. The university
has made substantial investments in computing
infrastructure through the Center for Integrated
Research Computing (CIRC) and the Health Sciences Center for Computational Innovation (HSCCI). Teaching loads are light and classes are small.
Half of all undergraduates go on to post-graduate
or professional education. The university includes
the Eastman School of Music, a premiere music
conservatory, and the University of Rochester Medical Center, a major medical school, research center,
and hospital system. The greater Rochester area is
home to over a million people, including 80,000
students who attend its 8 colleges and universities.
The University of Rochester has a strong commitment to diversity and actively encourages applications from candidates from groups underrepresented in higher education. The University
is an Equal Opportunity Employer.

University of South Carolina


Department of Computer Science and
Engineering
Positions Open: Two (2) Assistant Professors
The University of South Carolina invites applications for two (2) tenure-track faculty positions at

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

the rank of assistant professor in the Department


of Computer Science and Engineering. The Department will consider exceptional candidates in
any computing research areas, but is particularly
interested in candidates whose primary research
expertise is in:
1. Computer architecture, embedded systems,
high-performance computing, heterogeneous
computing, or VLSI Design
2. Software engineering
Requirements include a PhD in a relevant
field, a record of exceptional accomplishments,
and strong potential for research and teaching.
Persons joining the program will have significant
opportunities and access to world-class university and state-wide laboratories and staff. The
Department of Computer Science and Engineering offers bachelors, masters, and doctoral degrees. The Department has 22 full-time faculty
members (10 of whom are NSF CAREER award
recipients), an undergraduate enrollment of 591
students, a graduate enrollment of 108 students,
and over $2 million in annual research expenditures. The University of South Carolina is located
in Columbia, the capital and technology center of
South Carolina, and is the flagship university in
the state with an enrollment of more than 31,000
students.
Applications must include the following: (1)
cover letter, (2) curriculum vitae, (3) research
and teaching plans, and (4) contact information
for at least three references. Applications should
be submitted electronically to CSSearch@cse.
sc.edu. The search committee will begin reviewing applications immediately and continue until
the positions are filled.
Inquiries about the positions may be made
to Dr. Matt E. Thatcher, Professor and Associate
Chair of the Department of Computer Science
and Engineering, at (803) 777-2895 or thatche1@
mailbox.sc.edu.
The University of South Carolina is an affirmative action/equal opportunity institution. Women
and minorities are encouraged to apply.

The University of Texas at San Antonio


Department of Electrical and Computer
Engineering
Endowed Assistant/Associate Professor in
Cloud Computing
The Department of Electrical and Computer
Engineering at The University of Texas at San
Antonio invites applications for a tenure track
endowed assistant professor position or an associate professor position (without tenure) in
Open Cloud Computing beginning August 2015.
All cloud computing research areas will be considered, but high preference will be given to candidates with primary expertise in the areas of system architecture, hardware/software structures,
virtualization, performance analysis, dependability, scalability and cloud computing applications. Please read the entire advertisement on the
Department website at http://ece.utsa.edu/about/
faculty-openings.html. The search committee
will begin review of applications immediately and
will continue until the position is filled.
The University of Texas at San Antonio is an
Affirmative Action/Equal Opportunity Employer.

The University of Texas at San Antonio

University of Toronto

Department of Computer Science


Faculty Positions in Computer Science

Three Tenure-Stream Positions in Computer


Science,
At the rank of Assistant Professor

The Department of Computer Science at The


University of Texas at San Antonio invites applications for multiple tenure/tenure-track positions, starting Fall 2015. Interested candidates
may apply to one or more positions indicated
below.
Endowed tenure-track faculty positions in
Cloud Computing focused on high performance
computing (HPC) in cloud, big data and data
science, cloud architecture, virtualization, risk
assessment, cloud security and/or system management. There are multiple positions at the assistant or associate professor level. Each of these
positions includes a mini-endowment established as part of the university-wide cloud computing initiative.
A tenure-track faculty position in Computer
Science focused on system areas, including
HPC, architecture and system software. This is a
tenure-track assistant or associate professor position.
A tenured, senior faculty position in Cyber Security focused on systems security, including cloud
security, mobile security, malware defense, and/
or networking security. This is a tenured associate
or full professor position. Excellent candidates in
all areas of cyber security will be considered.
See http://www.cs.utsa.edu/fsearch for information on the Department and application instructions. Screening of applications will begin
immediately. Full consideration will be given to
applications received by January 5, 2015, and the
search will continue until the positions are filled
or the search is closed. The University of Texas at
San Antonio is an Affirmative Action/Equal Opportunity Employer.
Department of Computer Science
RE: Faculty Search
The University of Texas at San Antonio
One UTSA Circle
San Antonio, TX 78249-0667
Phone: 210-458-4436

The University of Texas, San Antonio


Department of Electrical and Computer
Engineering
Assistant Professor of Research in Cloud
Computing
The Department of Electrical and Computer Engineering at The University of Texas, San Antonio
(UTSA) seeks to fill one open faculty position at
the rank of Assistant Professor of Research in
Cloud Computing, beginning August 2015. All
cloud computing research areas will be considered, but high preference will be given to candidates with primary expertise in the areas of system architecture, hardware/software structures,
virtualization, performance, dependability, scalability and cyber security. Please read the entire
advertisement on the Department website at
http://ece.utsa.edu/about/faculty-openings.html.
The search committee will begin review of applications immediately and will continue until the
position is filled.
The University of Texas at San Antonio is an
Affirmative Action/Equal Opportunity Employer.

The University of Toronto invites applications for


three tenure-stream positions in Computer Science at the rank of Assistant Professor. Each appointment will be with the tri-campus Graduate
Department of Computer Science and one of its
affiliated undergraduate departments:
Department of Mathematical and Computational Sciences, University of Toronto Mississauga: areas of interest include:
Operating Systems, Networks, Distributed Systems, Database Systems, Computer Architecture,
Programming Languages, and Software Engineering.
Theoretical Computer Science.
Department of Computer and Mathematical
Sciences, University of Toronto Scarborough: all
areas of Computer Science.
Department of Computer Science, University of
Toronto St. George: all areas of Computer Science
that touch upon computer graphics in the broadest possible sense.
For all positions, we are especially interested
in exceptional candidates who transcend traditional computer science disciplines and complement our existing strengths.
The University of Toronto is an international
leader in computer science research and education. Evidence of excellence in teaching and
research is required. Candidates should have a
Ph.D. in computer science or a related field by
the date of appointment or shortly thereafter.
Successful candidates are expected to conduct
exceptionally innovative research at the highest
international level; to establish an outstanding,
externally funded research program; to have a
strong commitment to undergraduate and graduate teaching; to contribute to the enrichment of
undergraduate programs in their department;
and to participate actively in the Graduate Department of Computer Science.
All appointments will begin on July 1, 2015.
Salaries and startup packages are competitive
with our North American peers and will be commensurate with qualifications and experience.
Applicants should apply online through AcademicJobsOnline, https://academicjobsonline.
org/ajo/jobs/4896 and include a curriculum vitae,
a list of publications, research and teaching statements. Applicants should also arrange to have at
least three letters of reference uploaded through
AcademicJobsOnline directly by the writers.
To receive full consideration, applications
should be received by December 15, 2014.
For more information about Computer Science on the three campuses of the University of
Toronto, see our websites (www.cs.toronto.edu ;
www.utm.utoronto.ca/math-cs-stats; www.utsc.
utoronto.ca/cms ), or contact Sara Burns at recruit@cs.toronto.edu.
The University of Toronto is strongly committed to diversity within its community and especially welcomes applications from visible minority group members, women, Aboriginal persons,
persons with disabilities, members of sexual minority groups, and others who may contribute to
the further diversification of ideas. The University
is responsive to the needs of dual career couples.

The University of Toronto offers the opportunity


to conduct research, teach, and live in one of the
most diverse cities in the world.
All qualified candidates are encouraged to
apply; however, Canadians and permanent residents will be given priority.

University of Toronto
Department of Computer Science
Lecturer
The Department of Computer Science, University of Toronto seeks enthusiastic and innovative
applicants for two full-time teaching stream appointments in the field of Computer Science. The
appointments will be at the rank of Lecturer and
will begin on July 1, 2015.
We seek candidates who have a record of excellent teaching, possess the intellectual curiosity to pursue novel and innovative pedagogical
methods, and are interested in establishing a
long-term career as a faculty member in the Department.
Candidates in all areas of computer science
are encouraged to apply, particularly those with
experience in software engineering. Candidates
must have a graduate degree in computer science or a related field by the time of the appointment, experience in teaching at the university
level, demonstrated use of innovative pedagogical methods, and teaching-related scholarly activities. Experience working with or supervising
large-scale software projects as well as familiarity with modern software development tools and
practices are an asset. Responsibilities include
undergraduate teaching, managing teaching assistants, developing course materials, and curriculum development.
Appointments at the rank of Lecturer may
be renewed annually to a maximum of five years.
In the fifth year of service, Lecturers shall be reviewed and a recommendation made with respect
to promotion to the rank of Senior Lecturer. Senior Lecturers hold continuing appointments at
the University. Salary will be commensurate with
qualifications and experience.
Applicants should apply online at AcademicJobsOnline, https://academicjobsonline.org/ajo/
jobs/4904, and include curriculum vitae, teaching dossier (including statement of teaching
philosophy, course outlines, course evaluations,
selected course materials), and the names and
email addresses of three to five referees. Applicants should also arrange to have at least three
letters of reference uploaded through AcademicJobsOnline directly by the writers. Applications
will not be considered complete until the letters
have been received.
Review of applications will begin on December 15, 2014 and continue until the position is
filled. If you have any questions regarding this
position, please contact Sara Burns at recruit@
cs.toronto.edu.
The successful candidates will join a vibrant
group of Lecturers who are engaged in pedagogical and curricular innovations, development of
new teaching technologies, and research in
computer science education. For more information about the Department of Computer Science, please visit our home page at http://www.
cs.toronto.edu.
The University of Toronto is strongly com-

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

117

CAREERS
mitted to diversity within its community and
especially welcomes applications from visible
minority group members, women, Aboriginal
persons, persons with disabilities, members
of sexual minority groups, and others who
may contribute to the further diversification of
ideas.
All qualified candidates are encouraged to
apply; however, Canadians and permanent residents will be given priority.

University of Toronto
Tenure-Stream Appointment in Mathematics
and Computer Science
The University of Toronto invites applications for
a tenure-stream appointment in Mathematics
and Computer Science. The position is 75% in the
Department of Mathematics and 25% in the Department of Computer Science. The appointment
is at the rank of Assistant Professor and will begin
on July 1, 2015. Areas of interest include applied
computational geometry, discrete differential
geometry, analysis/visualization of multidimensional data, security/privacy, and complexity.
The University of Toronto is an international leader in Mathematics and Computer
Science research and education. The successful
candidates are expected to pursue innovative
research at the highest international level; to
establish a strong, externally funded independent research program; to have a strong commitment to undergraduate and graduate teaching and supervision; and to participate actively
in the Graduate Departments of Mathematics
and Computer Science at the University of Toronto. We are especially interested in exceptional candidates who would complement our
existing strengths.
Applicants should have a Ph.D. in Mathematics or Computer Science or a related field by the
date of appointment or shortly thereafter; should
show evidence of excellence in teaching; and
must demonstrate excellence in research.
Salary will be commensurate with qualifications and experience.
All qualified candidates are invited to apply
by clicking on the link https://www.mathjobs.org/
jobs/jobs/6272. Candidates should include C.V.
with a list of publications, a research statement, a
teaching statement, and the AMS Standard Cover
Sheet. Candidates should arrange to have at least
four (4) letters of reference, including at least one
primarily addressing the candidates teaching.
Candidates should ask referees to upload the
letters directly through MathJobs or send them
directly to the Department of Mathematics addressed to the Chair.
To receive full consideration, applications
should be received by December 15, 2014.
For more information about the Department
of Mathematics or the Department of Computer
Science, please visit our websites at: http://www.
math.utoronto.ca and http://web.cs.toronto.
edu/.
The University offers the opportunity to
teach, conduct research, and live in one of the
most diverse metropolitan areas in the world.
The University of Toronto is strongly committed
to diversity within its community and especially
welcomes applications from visible minority

118

COM MUNICATIO NS O F TH E AC M

group members, women, Aboriginal persons,


persons with disabilities, members of sexual minority groups, and others who may contribute to
the further diversification of ideas. All qualified
candidates are encouraged to apply; however,
Canadians and permanent residents will be
given priority.

University of Wisconsin School of


Medicine & Public Health
Department of Biostatistics & Medical
Informatics
Morgridge Institute for Research
Associate/Full (tenured) Professor in
biostatistics or bioinformatics
Department of Biostatistics & Medical Informatics at the University of Wisconsin School of Medicine & Public Health, and Morgridge Institute
for Research, seek Assistant (tenure-track) or Associate/Full (tenured) Professor in biostatistics
or bioinformatics. Innovative position combines
research in methodology with applications in
virology and related molecular biology; includes
teaching, graduate student training. PhD in Biostatistics, Statistics, Bioinformatics, Computational Biology, Biomedical Informatics, Computer Sciences, or related area. Please see: https://
www.biostat.wisc.edu/content/assistantassociatefull-prof-biostatistics-biomedical-informatics-pvl-80903
AA/EOE

University of Wisconsin Stevens Point


Department of Computing and New Media
Technologies
Assistant/Associate Professor Human
Computer Interaction
The Department of Computing and New Media
Technologies at UW-Stevens Point invites applications for a tenure-line faculty position, starting
August 2015. We are particularly interested in
candidates with demonstrated experience in:
Using multiple methods for designing, implementing and testing interfaces, including participatory action research.
Creating user-centered content, information
architecture, site maps, and prototyping.
Translating cognitive and other research-derived best practices into effective, engaging, usercentered designs.
Conducting one or more of the following evaluation techniques: heuristic review, task analysis
and interviewing.
Working in a usability lab, considered a plus.
Working in an agile development environment,
considered a plus.
Required Masters or Ph.D. in human computer interaction or related field; ABD will be considered. There may be opportunity to teach graduate
courses in an online Masters program. See http://
www.uwsp.edu/equity/Pages/jobVacancies.aspx
for application instructions and additional information on our department.
Screening of applicants will begin on January
6, 2015 and continue until the position is filled.
UW-Stevens Point is an Affirmative Action/Equal
Opportunity Employer.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

University of Wisconsin Stevens Point


Department of Computing and New Media
Technologies
Assistant/Associate Professor Software
Development
The Department of Computing and New Media
Technologies at UW-Stevens Point invites applications for a tenure-line faculty position, starting
August 2015. We are particularly interested in
candidates with skills in:
object oriented programming (one or more of
Java, C#, C++);
algorithms and data structures;
software engineering, including analysis, design and testing of software applications; and
networking, information assurance and cloud
computing.
Required Masters or Ph.D. in computer science or related field; ABD will be considered.
There may be opportunity to teach graduate
courses in an online Masters program. See http://
www.uwsp.edu/equity/Pages/jobVacancies.aspx
for application instructions and additional information on our department.
Screening of applicants will begin on January
6, 2015 and continue until the position is filled.
UW-Stevens Point is an Affirmative Action/Equal
Opportunity Employer.

University of Wisconsin Stevens Point


Department of Computing and New Media
Technologies
Assistant/Associate Professor
Web Development
The Department of Computing and New Media
Technologies at UW-Stevens Point invites applications for a tenure-line faculty position, starting
August 2015. We are particularly interested in
candidates with skills in Web and mobile-based
design and application development.
Required Masters or Ph.D. in computer science or related field; ABD will be considered.
There may be opportunity to teach graduate
courses in an online Masters program. See http://
www.uwsp.edu/equity/Pages/jobVacancies.aspx
for application instructions and additional information on our department.
Screening of applicants will begin on January
6, 2015 and continue until the position is filled.
UW-Stevens Point is an Affirmative Action/Equal
Opportunity Employer.

Washington College
Tenure-track position in Computer Science
The Department of Mathematics & Computer
Science at Washington College in Chestertown
MD invites applications for a tenure-track
position in computer science at the rank of
Assistant Professor beginning in August 2015.
The successful candidate will be expected to
teach a variety of upper-level and introductory
classes in computer science, supervise senior
undergraduate theses, and develop into a strong
teacher-scholar at a liberal arts institution. For
full details visit http://www.washcoll.edu/offices/
human-resources/employment.php

last byte
mathe[ C ONTI N U E D FRO M P. 120]
matics of programming. In 1982 I was
in an interdisciplinary lab and started
working with people in control theory
and electronics. My colleagues were
in the process of building a miniature
autonomous robotic car for a competition, and based on what I knew
about programming, the current languages were completely incapable of
creating programs for this car.
Why is that?
Because they didnt deal with time
and events. Dealing with time was
mostly with how long it takes to compute what we have to do, not with the
proper time of the controlled process.
So I had the idea of simplifying realtime programming by saying it would
be much better if a computer was infinitely fast; it could react in zero time.
So then the next question was how
would you program an infinitely fast
computer? This was the beginning of
the Esterel Language.
But computers are not infinitely fast.
Especially not in the early 1980s.
People told me this was nonsense;
computers take time. I said, You
need to be more clever than that. You
dont have to be as fast as possible.
You just have to be as fast as the process you want to control. We worked
on it for several years, and we discovered that this whole hypothesis of being infinitely fast both simplified programming and helped us to be faster
than others, which was fun.

We discovered that
this whole hypothesis
of being infinitely
fast both simplified
programming
and helped us
to be faster
than others,
which was fun.

I also like this idea


of changing worlds,
being confronted with
different subjects,
and working with
different superbrilliant people.

This more reactive approach made it


ideal for the robotics project, but also
avionics, in which a plane and its pilot
have to react quickly to changing conditions. What were some of the first applications?
We started working with Dassault
Aviation, which was building the Rafale fighter jet. Also, people in Bell Labs
started using it for communications
protocols. Robotics engineers began
using it, too. In the 1990s, I discovered
that by building Esterel into circuits in
a smart way, I could also improve their
design and synthesis. In 2000, we created a company, Esterel Technologies,
for both hardware and software.
What was it like to shift from the academic world to industry?
In fact, I was always in close contact
with industry as a consultant. What I
like about industry is that you can have
a much stronger team, because people
dont have their own research to publish; you can concentrate absolutely on
the software activity block. I could never have done Esterel v7 [the latest version] in research. It was just too hard.
After the company was sold, you accepted a position at Collge de France,
where you remain today. Has the return
to academia been a drastic change?
Collge de France is an ideal place.
Its a little like the Institute of Advanced Studies at Princeton, except
here we are teaching all subjects. I also
like this idea of changing worlds, being
confronted with different subjects, and
working with different super-brilliant
people. I love trying to understand how
they see the world. Building an air-

plane or a circuit, composing music


it doesnt look the same, but somehow
it is the same.
Still, you have also found time to start
working in diffuse programming
through HipHop, the language youre
developing with Manuel Serrano. How
does HipHop work?
Lets say you want to have a music
player that you dont tell very much and
it plays interesting music. For example,
you type Miles Davis, and the system
will go look on the Web for MP3s, free
music, the most popular songs, friends
of Miles Davis. In the background it
gathers and processes information
from a lot of websites, many of which
are broken. What you want is good
music and not having the same thing
played twice, so what you need is an
orchestrator, a conductor. We have a
language, Hop, thats able to gather
information on the Web very nicely.
But on the Web, things keep changing.
Sites give you other things, like pictures, scores, bios, etc. HipHop says,
OK, lets try to make something sensible out of the new information now
and then.
So it is similar to Esterel in that it is
dealing with changes over time and
responding to new inputs or new information?
But with a big difference. The car
has a fixed number of wheels. The airplane has a fixed number of wings. On
the Web, you never know. We think its
a very interesting field, mixing completely asynchronous stuff on the Web
with a synchronous approach like Esterel. Its like a dynamic orchestra, with
musicians coming in, playing with the
others or leaving in the middle of the
performance. You need the conductor
for those musicians to play together.
The concept of Esterel is still alive and
well in your research, then.
This idea that started from a little
race car now has many more uses.
And thats what I like about science.
A good idea can be much better than a
new one.
Gregory Mone is a Boston, MA-based writer and the
author of the novel Dangerous Waters.

2014 ACM 0001-0782/14/12 $15.00

DEC E MB E R 2 0 1 4 | VO L. 57 | N O. 1 2 | C OM M U N IC AT ION S OF T H E ACM

119

last byte

DOI:10.1145/2684423

Gregory Mone

Q&A
From Esterel to HipHop
This years CNRS Gold Medal recipient, Grard Berry, discusses his
roots in computer science, why computers are stupid, and how he has
helped to simplify programming.

How were you introduced to computer


science?
I studied mathematics and physics at cole Polytechnique, one of the
main schools in France, and I discovered my first computer there in 1968.
That was an old computer, but I really
understood very fast that a computer
is exactly the opposite of a human being. Its really fast, really exact, and
completely stupid. So it was interesting to figure out how to speak to this
beast so that we could have it do whatever we couldnt do ourselves.
In your lectures, you have spoken about
this notion of the stupid computer, and
how it is important to be as stupid as a
computer when programming. What
do you mean by that?
120

COMM UNICATIO NS O F T H E ACM

Years ago, I visited a school to


teach young children about computing. My motto was that the computer
is exactly the contrary of a kid: the
kid is clever, not very exact, and quite
slow; the computer is extremely exact, very fast, but not clever. I said to
the kids that when programming, we
must try to be as stupid as a computer. Then I transformed myself into
a robot. They had to program me to
cross the classroom, but I told them
I understood only completely stupid
commands. So one kid says lift your
left leg. I lifted my left leg. The other
kid says lift your right leg, and I fell
on the floor.

| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2

Was this the equivalent of a bug in the


code?
Lifting both legs was a bug. A computer is the most extraordinary error
amplifier ever built, because a computer
has no common sense and no humor. If
you give it the wrong order, it will do that
100%. The difference between a bug and
no bug could be one character in a million. Thats the difficulty of computing.
Most people dont understand that.
Your big breakthrough was the Esterel
programming language. How did that
come about?
From 1970 to 1982, I was working
[C O NTINUED O N P. 119]
on the

PHOTO BY C. TOURNIA IRE, CO URT ESY O F INRIA

AS A CHILD, Grard Berry was so fascinated with chemistry that he built his
own lab, but once he discovered his
first computer, he knew the machine
was for him. In 1982, the pioneering
computer scientist began developing Esterel, a time- and event-focused
programming language that would
eventually be used in avionics, communications systems, microprocessor design, and many other areas. In
September, Berry was awarded the
CNRS Gold Medal, the most prestigious scientific research honor in
France. He holds the first permanent
chair in computer science at the Collge de France, and he now is turning
his focus to diffuse programming, or
controlling the connected objects that
make up the Internet of Things.

CALL FOR PARTICIPATION

S-ar putea să vă placă și