Documente Academic
Documente Profesional
Documente Cultură
ACM
CACM.ACM.ORG
OF THE
Association for
Computing Machinery
TVX2015.COM
INFO@TVX2015.COM
ACM Books
Association for
Computing Machinery
Advancing Computing as a Science & Profession
Viewpoints
21 Global Computing
Cerfs Up
24 The Profession of IT
10 BLOG@CACM
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
99 Careers
Last Byte
Port Squatting
Do not irk your local sysadmin.
By George V. Neville-Neil
33 Viewpoint
120 Q&A
Raised to $1 Million
23 Calendar
News
12/2014
VOL. 57 NO. 12
Practice
Contributed Articles
Review Articles
38
a General-Purpose Processor
And the belief in such
a device is harmful.
By David Chisnall
49 A New Software Engineering
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
Research Highlights
90 Technical Perspective
80
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
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
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
REC
PL
NE
E
I
SE
CL
TH
Chair
James Landay
Board Members
Marti Hearst; Jason I. Hong;
Jeff Johnson; Wendy E. MacKay
WEB
M AGA
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,
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.
How to apply:
Online: https://application.heidelberg-laureate-forum.org/
Materials to complete applications are listed on the site.
cerfs up
DOI:10.1145/2685035
Vinton G. Cerf
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/
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
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
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
Authors Response:
Suzuki points out several possible
improvements and extensions that may
make user-authentication systems that
COMMUNICATIONS
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?
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.
DOI:10.1145/2682922 http://cacm.acm.org/blogs/blog-cacm
COMMUNICATIO NS O F TH E AC M
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.
11
news
Science | DOI:10.1145/2675742
Chris Edwards
(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
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
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
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.
Milestones
COMMUNICATIO NS O F TH E AC M
news
Technology | DOI:10.1145/2676393
Gregory Mone
Intelligent Living
After years of false starts, the smart home is gaining momentum.
OKIDOKEYS Smart Locks with Smart Keys allows you to lock or unlock your door using your
mobile phone from anywhere, at any time.
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
| 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
Technology is now
being deployed
that helps elderly
people maintain their
independence, while
also providing peace
of mind to loved ones.
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
The CarePredict Tempo wrist-worn sensor detects user location and motion, with built-in
software tracking user activities and transmitting data wirelessly.
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
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-
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
19
news
News | DOI:10.1145/2685372
20
(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.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
ALEXANDER L. WOLF
ACM PRESIDENT
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
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
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?
0% 23%
24% 53%
54% 88%
89% 100%
Source: ITU
22
| 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
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
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-
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
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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
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.
26
COM MUNICATIO NS O F TH E AC M
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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-
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.
27
viewpoints
DOI:10.1145/2676861
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 ,
COMMUNICATIO NS O F TH E ACM
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
29
viewpoints
CACM_TACCESS_one-third_page_vertical:Layout
ACM
Transactions on
Accessible
Computing
www.acm.org/taccess
www.acm.org/subscribe
30
6/9/09
1:04 PM
Page 1
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
viewpoints
DOI:10.1145/2676863
George V. Neville-Neil
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.
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.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
viewpoints
DOI:10.1145/2629458
Viewpoint
Making the Case
for a Manufacturing
Execution System for
Software Development
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.
Data flow
Resource
allocation/status
Labor
management
Process
management
Maintenance
management
Quality
management
Product
tracking
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
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
Currently,
correlating all
the necessary
information is
expensive and
awkward, but
not impossible.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
ACMs Career
& Job Center
Visit ACMs
practice
DOI:10.1145/ 2677032
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
39
practice
Table 1. Five fastest-growing companies.
118.80%
2004
Apple
55.90%
1976
Intel
48.50%
1968
Gilead Sciences
47.60%
1987
Microsoft
41.80%
1975
GlaxoSmithKline
6.30%
1900 (mergers)
Citigroup
5.00%
1812
Philip Morris
4.90%
1900
Sanofi
4.30%
1973 (mergers)
WalMart Stores
2.60%
1962
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
input
control
system
output
control
system
output
system
output
input
feedback
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
input
output
state
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
No company
embodies
the hacker culture
better than
Facebook.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
43
practice
DOI:10.1145/ 2677030
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
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
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.
COMMUNICATIO NS O F TH E AC M
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
DOI:10.1145/ 2 6 770 3 4
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
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-
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
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.
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
>
Work
<g
Team
es
Way of
Working
<a
lie
pp
uid
support >
Solution
< provide
Opportunity
use and
consume >
Customer
focuses >
Opportunity
Way of Working
Stakeholders
Team
Requirements
Work
Software System
51
practice
Figure 3. Alphas made tangible with cards.
va
Addressed
Involved
Identified
5/6
4/6
52
Way of
Working
Performing
Under Control
2/6
Team
Work
3/6
1/6
Demonstrable
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
3/6
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
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
key insights
DOI:10.1145/ 2631912
57
contributed articles
Figure 1. Illustration of the dynamics of emotional reactions.
0s
0.1s surprise
0.4s aversive/fear
0.66s aggressive
Causal Interpretation
Environment
Self
Desires
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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
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
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
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
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.
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
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.
67
contributed articles
DOI:10.1145/ 2656206
GPUfs:
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
68
COMMUNICATIO NS O F TH E AC M
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
IMAGE BY KUDRYASH KA
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.
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
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.
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
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-
CPU
GPU
Unchanged applications
using host OS file API
GPU application
using GPUfs file API
GPUfs hooks
GPUfs GPU
file I/O library
GPU memory
72
Behavior on CPU
Buffer cache
API call
granularity
File descriptors
No file pointers at OS level, but library supports per-warp or per-threadblock local file
descriptors
| 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-
open()
read()
read()
GPU1
May not be visible to GPU1
GPU2
write(1)
close()
open()
write(2)
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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-
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.
76
| 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-
Input
CPUx8
GPU-GPUfs
GPU-vanilla
Linux source
6.1h
53m (6.8)
50m (7.2)
Shakespeare
292s
40s (7.3)
40s (7.3)
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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.
79
review articles
DOI:10.1145/ 2629559
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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
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.
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
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-
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
| 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.
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
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
research highlights
P. 90
Technical
Perspective
Rethinking Caches
for Throughput
Processors
By Stephen W. Keckler
P. 91
89
research highlights
DOI:10.1145/ 2 6 8 2 5 8 5
Technical Perspective
Rethinking Caches for
Throughput Processors
rh
By Stephen W. Keckler
90
COMMUNICATIO NS O F TH E ACM
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
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.
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
7
6
5
4
3
2
1
0
36.3
BFS
KMN
32K L1D
MEMC
GC
8M L1D
HAR-MEAN
Abbreviation
Name
Abbreviation
BFS graph
traversal5
Memcached10
BFS
Kmeans5
KMN
MEMC
Garbage
collection2
GC
92
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
Misses PKI
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
MPKI
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
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
Compute Unit
Fetch/
Decode
I-Buffer/
Scoreboard
Waves
Ready
[1:N]
2
WIA
Inst.
(WID)
Registers/
Execution
3
Mem. Unit
Waves
Ready
[1:N]
Baseline
Priority
Logic
Prioritized
Waves
[1:N]
7
Intersection
To Exec
Inst.
(WID)
14
LSS
5
Can
Issue
[1:N]
15
Access
From
Coaleser
L1D
Cache
8
Is Load
[1:N]
13
LLSW1
LLSW2
LLSWN
VTAHit
(WID)
12
11
LLD
9
Victim Tag
Array
Tag
Tag
Tag
Tag
Tag
Tag
W1
W2
WN
10
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
95
research highlights
96
| 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
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
Best-SWL
GTO
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
97
research highlights
6.
7.
8.
9.
10.
11.
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.
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.
ACM Transactions
on Interactive
Intelligent Systems
ACM Transactions
on Computation
Theory
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
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.
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.
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
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
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
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
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.
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/
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
CO
ND DEV
LA
LUTIO
EVO
ROSCIEN
EU
CE
L
www.ist.ac.at
EMATICS
TH
CE
IOLOGY
LB
PhD Program
102
OPMENTA
EL
UTER SC
P
M
CE
IEN
GY
RY BIOLO
NA
MA
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
CAREERS
Max Planck Institute for Software
Systems
Tenure Track Openings
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
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
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.
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
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.
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
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 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
ACM
2/3 p
$6,80
Next
Comp
(This
2/3 p
$6,40
Next
Web
Comp
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
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-
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
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
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.
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.
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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 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
http://jobs.acm.org
Offering a host of career-enhancing benefits:
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
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.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
University of Toronto
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-
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
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.
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.
| D EC EM BER 201 4 | VO L . 5 7 | N O. 1 2
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.