Adaptive

Web

site

agents

We

discuss

the

design

of

a

class

of

agents

that

we

call

adaptive

web

site

agents.

The

goal

of

such

an

agent

is

to

help

a

user

find

information

at

a

particular

web

site,

adapting

its

behavior

in

response

to

the

actions

of

the

individual

user

and

the

actions

of

other

visitors

to

the

web

site.

The

agent

recommends

related

documents

to

visitors.

It

integrates

and

coordinates

among

different

reasons

for

making

recommendations

including

user

preference

for

subject

area,

similarity

between

documents,

frequency

of

citation,

frequency

of

access,

and

patterns

of

access

by

visitors

to

the

web

site.

Designers

of

web

sites

publish

information

on

the

World

Wide

Web

so

that

visitors

to

the

site

may

access

it.

As

the

site

contains

more

information,

it

becomes

harder

for

a

visitor

to

locate

any

item

of

interest

or

to

explore

all

the

parts

of

the

site

that

contain

pertinent

information.

In

this

paper,

we

argue

that

a

web

site

should

be

augmented

with

an

intelligent

agent

to

help

the

visitors

explore

the

site.

We

further

argue

that

such

agents

should

learn

from

the

visitors

to

the

web

site.

Such

learning

happens

by

both

analyzing

web

logs

to

identify

common

access

patterns

of

the

site

and

by

analyzing

the

visitor's

actions

to

infer

the

visitor's

interests.

From

the

visitor's

viewpoint,

the

agent

should

help

the

user

make

sure

that

useful

information

is

not

overlooked.

The

web

site

designer

also

wishes

to

increase

the

amount

of

useful

information

accessed

by

the

visitor

for

a

variety

of

reasons

ranging

from

authors

who

want

their

work

to

have

an

impact

to

merchants

who

want

products

or

advertisements

to

be

considered.

A

variety

of

systems

have

been

proposed

to

help

adapt

a

web

site

to

visitors.

Perkowitz

and

Etzioni,

have

argued

user

access

patterns

can

be

exploited

to

synthesize

new

"index

pages"

which

group

together

pages

commonly

accessed

together.

The

Footprints

system

allows

a

visitor

to

a

web

site

to

visualize

the

paths

through

a

web

site

that

are

commonly

traversed.

AVANTI

uses

a

set

of

adaptation

rules

that

customize

the

appearance

of

a

web

site

for

"stereotypical"

subgroups

of

users..

Permission

to

make

digital

or

hard

copies

of

all

or

part

of

this

work

for

personal

or

classroom

use

i>

granted

without

fee

provided

that

copies

arc

snot

made

or

dlstrihutcd

for

protit

or

commercial

ad~antagc

and

that

topics

hear

this

notice

and

the

full

citation

on

the

first

page.

TO

copy

otherwise.

to

republish.

to

post

on

servers

or

to

redistribute

to

lists,

prwr

sprcific

permission

a&or

a

fee..

Autonomous

Agents

Seattle

WA

USA

Copyright

ACM

Each

of

these

systems

uses

a

single

strategy

to

influence

how

recommendations

are

made.

Here,

we

advocate

the

use

of

an

agent

that

has

multiple

strategies

for

making

recommendations.

For

example,

the

agent

can

recommend

a

document

that

is

on

a

topic

similar

to

that

of

other

items

seen

by

the

user.

Alternatively,

a

document

could

be

recommended

that

has

been

accessed

frequently

by

other

visitors

in

combination

with

documents

seen

by

the

user.

Furthermore,

we

argue

that

an

animated

agent

is

a

more

flexible

way

of

presenting

such

information

than

annotating

links

or

synthesizing

web

pages

that

summarize

this

information

We

are

influenced

in

our

work

by

Bickmore,

Cook,

Churchill

Sullivan

[l]

who

have

advocated

animated

autonomous

personal

representatives,

i.e.,

scripted

synthetic

characters.

"Document

Avatars"

that

interact

with

readers

of

a

document

are

one

such

application

of

such

a

representative.

However,

in

our

work,

we

desire

for

the

agent

to

learn

about

its

user

and

to

learn

from

patterns

of

use.

We

have

deployed

two

agents

with

quite

different

topics

and

audiences

and

monitored

how

users

interact

with

the

agents.

One

at

recommends

scholarly

publications

to

visitors.

The

other

agent

at

http:

presents

information

on

raising

goats

and

other

livestock.

The

agents

share

the

same

engines

for

analyzing

web

logs,

determining

similarity

between

documents,

making

recommendations,

and

learning

about

users.

Figure

shows

an

example

of

the

adaptive

web

page

agent.

Here,

the

user

has

viewed

a

paper,

and

when

the

agent

detects

the

user

returning

to

the

browser,

it

recommends

that

the

user

download

another

paper.

The

agent

displays

its

recommendation

in

the

lower

frame,

scrolls

the

upper

frame

to

the

appropriate

location,

and

if

the

user

has

installed

and

activated

the

free

Assistant

by

Planet

the

agent

gestures

to

the

recommended

document

and

makes

a

spoken

recommendation

via

a

text-to-speech

converter.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Robust Network Coding in the Presence of Untrusted Nodes Abstract-While network coding can be an efficient means of information dissemination in networks, it is highly susceptible to "pollution attacks," as the injection of even a single erroneous packet has the potential to corrupt each and every packet received by a given destination. Even when suitable errorcontrol coding is applied, an adversary can, in many interesting practical situations, overwhelm the error-correcting capability of the code. To limit the power of potential adversaries, a broadcast transformation is introduced, in which nodes are limited to just a single (broadcast) transmission per generation. Under this broadcast transformation, the multicast capacity of a network is changed (in general reduced) from the number of edge-disjoint paths between source and sink to the number of internally-disjoint paths. Exploiting this fact, a family of networks is proposed whose capacity is largely unaffected by a broadcast transformation. This results in a significant achievable transmission rate for such networks, even in the presence of adversaries. Network coding [1] is a promising approach for efficient information dissemination in packet networks. Network coding generalizes routing, allowing nodes in the network not only to switch packets from input ports to output ports, but also to combine incoming packets in some manner to form outgoing packets. For example, in linear network coding, fixed-length packets are regarded as vectors over a finite field F q , and nodes in the network form outgoing packets as F q -linear combinations of incoming packets. For the single-source multicast problem, it is known that linear network coding suffices to achieve the network capacity [2] , [3] .attacks can be catastrophic. Indeed, the injection of even a single erroneous packet somewhere in the network has the potential to corrupt each and every packet received by a given sink node. This problem was first investigated from an edgecentric perspective [4] , where a number of packet errors could arise in any of the links in the network. Alternatively, under a node-centric perspective, it is assumed that an adversarial node may join the network and transmit corrupt packets on all its outgoing links, but the other links in the network remain free of error.. One approach, investigated in [5] , [6] , for dealing with the pollution problem is to apply cryptographic techniques to ensure the validity of received packets, permitting corrupted packets to be discarded by each node, and therefore preventing the contamination of other packets. This approach typically requires the use of large field and packet sizes, which leads to computationally expensive operations at the nodes and possibly to significant transmission delay. These requirements may be acceptable in the large-file-downloading scenario, but may be incompatible with delay-constrained applications such as streaming-media distribution.. Another approach (and the one followed in this paper) is to look for end-to-end coding techniques that require little or no intelligence at the internal nodes. Jaggi et al. [7] show that, if C is the network capacity (per transmission-generation) and z is the min-cut from the adversary to a destination, then a rate of C − 2z packets per generation is achievable. The same rate can also be achieved using the subspace approach introduced by Kötter and Kschischang [8] , [9] . A higher rate C − z can be achieved using a scheme proposed in [7] (see also [10] ) if the source and sink nodes are allowed to share a secret (i.e., if they have common information not available to the adversary).. In all of the end-to-end techniques mentioned above, we observe that the min-cut from the adversary to a sink node has a significant impact on the achievable rates. If z is large-for instance, if z = C-then the adversary can jam the network with no hope of recovery. It is important, therefore, to conceive of protocols that induce per-generation network topologies that can perform well, even in the presence of adversaries.. The central question of this paper is the following:. In this paper, we introduce the concept of a broadcast transformation, which essentially constrains potential adversaries to sending the same packet on all its outgoing links. In the case of a single malicious node, this effectively enforces z = 1. In order for such a transformation to be possible, we introduce the concept of a trusted node that performs the role of broadcasting traffic. A beneficial side-effect of a broadcast transformation is to lower the encoding complexity, since each node only needs to compute a single outgoing packet in each round of communication.. In practice, such a broadcasting feature could be implemented at trusted network gateways. For example, in overlay network applications, it could be implemented by ISPs at their gateways, through the use of deep packet inspection or similar technologies. Note that the broadcast constraint is effectively enforced if all packets in the same generation 1 from the same user have identical payload (although with different headers corresponding to different destination addresses). Thus, for each user/generation pair, the network gateway could simply store the payload of the first packet it receives and drop any subsequent packets that have different payloads (while also flagging such a user as "suspicious"). It is worth mentioning that, for wireless networks, this constraint is automatically satisfied due to the broadcast nature of wireless communication [12] , so the results of this paper are also naturally applicable in this case.. In general, a broadcast transformation can reduce capacity (significantly, in some cases), unless the network has special connectivity properties. We will show that the maximum number of internally-disjoint paths between source and sink, rather than edge-disjoint paths, becomes the key parameter. This result implies that robustness to node failures and robustness to adversarial attacks are closely related concepts. We then examine a class of networks, which we call d-diverse networks, that have excellent robustness properties. This class of networks is strongly inspired by the work of Jain, Lovász and Chou in [13] on robust and scalable network topologies. We show that, under certain conditions, no loss in capacity is incurred when performing broadcast conversion in such ddiverse networks.. The remainder of this paper is organized as follows. In Sec. II we review some basic concepts of graph theory and network coding. In Sec. III we introduce an adversarial model for communication over untrusted networks. In Sec. IV we introduce the broadcast transformation and characterize the achievable rates of broadcast-constrained networks by relating it to parameters of the original network. In Sec. V we introduce d-diverse networks and study their robustness properties. In Sec. VI we present our conclusions. We have introduced the broadcast transformation of a network, which restricts the influence of potential adversaries by limiting them to a single transmission opportunity per generation. For networks with a sufficient diversity of internally-disjoint paths from source to sink(s), the multicast capacity may not be greatly affected by this transformation. In particular, for a class of networks called d-diverse networks, the full capacity is maintained when d is sufficiently large. Combined with error control for network coding, the proposed approach may be an effective means of dealing with adversaries, particularly in application scenarios such as realtime media streaming, where alternative (e.g., cryptographic) methods may be cost-prohibitive.

O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Remote Physiological Monitoring of First Responders with Intermittent Network Connectivity First responders have been observed to be at an increased risk of cardio-vascular diseases compared to the general population with a high percentage of cardiac events occurring during mission execution. Continuous physiological monitoring during missions can be effective in reducing the number of fatalities. Real-time physiological data such as ECG can be collected using sensors worn on the body. This sensor data can be processed on the body itself or can be communicated over an ad hoc wireless network to the incident command center or base station located near by. First responder missions often take place inside building structures where network connectivity is intermittent. Intermittent connectivity can lead to loss of critical physiological data or delay in that information reaching the base station. Hence, some amount of local processing is needed in order to limit the data that is communicated. In this paper, we introduce a novel Hidden Markov Model based myocardial infarction detection approach. The fidelity of this approach can be adapted based on the processing power available. We present a peer-to-peer networking protocol for communication over disrupted networks. A low fidelity classifier is used to perform local processing and assign priorities to the data based on its criticality. It is complemented by a disruptionaware epidemic forwarding protocol for transferring first responder's physiological data to the base station. With prioritized epidemic forwarding and buffer eviction policy, our protocol increases packet delivery ratio and reduces networking delay when end-to-end route disruption occurs. Finally, we report the effect of network disruption on myocardial infarction detection rate and latency of detection and the improvements achieved by our protocol. First responders have been observed to be at an increased risk of cardio-vascular diseases compared to the general population with a high percentage of cardiac events occurring during mission execution [7, 20, 23] . Continuous physiological monitoring during missions can, therefore, be effective in reducing the number of fatalities. One possible system architecture to enable such continuous monitoring is as follows [9] . Physiological sensors, preferably non-invasive, measure realtime physiological data. A portable personal server, on the first responder body, collects the various sensor readings. The personal server performs two additional functions. It performs preliminary sensor data processing and is also responsible for communicating the data to a remotely located incident command center or base station. Additional processing and decision support capability may be available at the base station. In this paper, we address some of the challenges associated with remote physiological monitoring of first responders.. Such a continuous physiological monitoring operation, however, presents several challenges. One challenge that arises is due to the fact that first responder missions often take place inside building structures where network connectivity is intermittent. The intermittent network connectivity may lead to the loss of critical physiological sensor data. A disruption tolerant networking solution is, therefore, necessary to address this problem. However, it is still not guaranteed that all transmissions will reach the base station. Moreover, data may still incur significant latency before it reaches the base station. To alleviate this problem, it is important that the more critical information have a higher chance of successfully reaching the base station and earlier. To identify the more critical data, the personal server must be able to perform preliminary processing on the sensor data and gauge its importance. Cardiovascular conditions can best be detected with Electrocardiography (ECG) and, therefore, the personal server must be able to provide some diagnostic capability using ECG measurements. In this paper, we consider the problem of communicating physiological data from a first responder to a remotely located base station in such a manner so that the latency associated with critical physiological ECG data is minimized and overall probability of detection of an abnormal condition is maximized.. The first set of relevant literature is in the area of automated ECG analysis. Techniques for automated ECG analysis have been studied for more than two decades. Most automated ECG analysis approaches rely on machine learning techniques [5, 21, 18, 16, 17, 24] and primarily focus on the detection or arrhythmias. ECG analysis using mobile devices [14] has also been studied. Automatic detection of myocardial infarction (MI) using ECG data has not received as much attention as the detection of arrhythmias. To the best of our knowledge, there is very little literature on MI detection using single lead ECG. Documented results using 12 lead ECG [3] obtain results of 53% sensitivity for MI and 83% for Acute MI. Using 12 lead ECG during first responder missions is not practically feasible.. The second set of relevant literature is in the area of Delay or Disruption Tolerant Networking (DTN). Fire fighter missions may take place in challenged environments such as building structures, tunnels, subterranean environments where network connectivity to the base station is intermittent. Without a DTN solution in place, critical physiological data may be lost or incur significant latency. DTNs have been studied in the context of vehicular networks [12] , fire fighter networks [22] and wildlife tracking networks [15] . Routing protocols for DTN have been proposed that utilize the knowledge of mobility of the nodes [13] or using an epidemic based approach [8] . In the first responder case, it is difficult to assume that the mobility knowledge is available. Hence, an epidemic based forwarding approach is more suitable for our application.. Our contributions in this paper as follows. First, we propose a novel automated myocardial-infarction detection approach using ECG data. This algorithm can be used in a decision support system located at the incident command center to help provide real time assessment of the first responders' health. Our approach is based on a variant of a Hidden Markov Model (HMM) approach. Our approach uses Duration Hidden Markov Models (DHMMs) which capture the temporal characteristics of the ECG signal very well. To account for the large variability in the ECG waveform among patients suffering from the same cardiac condition, we train multiple DHMMs for each class. The outputs of the multiple DHMMs are combined to together to yield one classification result.. To evaluate our approach, training and testing was conducted using data from the Physikalisch-Technische Bundesanstalt (PTB) database on Physionet [1] which contains patient ECG posterior to MI. By using only lead 2 of the ECG we obtained about 70% accuracy in detection with 0% false positives (90% AUC by utilizing parallel DHMMs. A crucial point to note is that patients used for testing were completely distinct from those used in training, akin to real life situations. This is very rarely found in ECG literature due to the issues in addressing high variability between patients and also in severity of the condition. We also provide a lower fidelity version of the above DHMM classifier that can be implemented on the first responder personal server to provide preliminary screening and identify data which is critical.. Second, we present a delay-tolerant networking (DTN) approach to communicate ECG data from the personal server to the base station. Data that is more likely to contain abnormal ECG receive higher priority for communication. In the case of buffer overflows, lower priority data is evicted first. To compare our approach with the baseline approach without DTN, we conduct simulations using realistic first responder mobility patterns. Prioritized ECG data is generated at each first responder node as the network traffic. We observe that our approach improves the overall performance in terms of higher average packet delivery ratio, higher packet delivery ratio for the abnormal ECG data and lower latency. We also evaluate the effect of buffer size on the performance metrics.. The paper is organized as follows. Section 2 contains a description of the first responder physiological monitoring system architecture. Section 3 describes the HMM based approach for MI detection. Section 4 describes our disruptionaware forwarding protocol. Section 5 describes the experimental set up. Section 6 contains the experimental results and discussions. Finally, Section 7 contains the conclusions and pathways for future work. In this paper, we have introduced a novel MI detection approach for use in a first responder physiological monitoring application. We have also introduced a disruption aware epidemic forwarding protocol to communicate physiological data from first responders in the field to the base station or incident command center. We have shown how the MI detector can be integrated with the epidemic forwarding protocol to provide higher packet delivery ratios and lower MI detection times in the face of network disruptions. Intelligent integration of physiological monitoring with networking protocols is important for such wireless health applications where resources such as bandwidth and processing power are at a premium.. The results included in this paper are encouraging but are still only the first steps towards providing a robust disruption tolerant remote physiological monitoring solution for first responders. The protocols and algorithms introduced in this paper need testing in more realistic environments. For example, the ECG used for this study was collected in hospital environments and did not include motion artifacts expected to present in ambulatory ECG monitoring. Also, for the purpose of the network simulations, we assumed a simplified range based model for one-hop connectivity. In real indoor environments, this is seldom the case with many more complex effects such as multi-path fading coming into play. These effects need to be considered for better evaluation of our approach and are part of our future work plan.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Multi-core and many-core shared-memory parallel raycasting volume rendering optimization and tuning Given the computing industry trend of increasing processing capacity by adding more cores to a chip, the focus of this work is tuning the performance of a staple visualization algorithm, raycasting volume rendering, for shared-memory parallelism on multi-core CPUs and many-core GPUs. Our approach is to vary tunable algorithmic settings, along with known algorithmic optimizations and two different memory layouts, and measure performance in terms of absolute runtime and L2 memory cache misses. Our results indicate there is a wide variation in runtime performance on all platforms, as much as 254% for the tunable parameters we test on multi-core CPUs and 265% on many-core GPUs, and the optimal configurations vary across platforms, often in a non-obvious way. For example, our results indicate the optimal configurations on the GPU occur at a crossover point between those that maintain good cache utilization and those that saturate computational throughput. This result is likely to be extremely difficult to predict with an empirical performance model for this particular algorithm because it has an unstructured memory access pattern that varies locally for individual rays and globally for the selected viewpoint. Our results also show that optimal parameters on modern architectures are markedly different from those in previous studies run on older architectures. In addition, given the dramatic performance variation across platforms for both optimal algorithm settings and performance results, there is a clear benefit for production visualization and analysis codes to adopt a strategy for performance optimization through auto-tuning. These benefits will likely become more pronounced in the future as the number of cores per chip and the cost of moving data through the memory hierarchy both increase. For the past two decades, a majority of high-performance parallel computing research, including much visualization research, has focused on the large, commercial off-the-shelf (COTS)-based distributed memory system as the primary platform. These systems have become more powerful due to a combination of faster processors, faster memory, and faster interconnect. Up until recently, growth in processor speed and capacity more or less followed Moore's law: transistors shrank, allowing more of them to be packed into a given unit area of silicon, and clock rates increased. As heat and power constraints may limit future gains, multi-core processors have emerged as industry's solution.. In computational science research communities, recent research has focused on the problem of adapting algorithms to make effective use of this 'new' platform, the multi-core processor. Achieving optimal algorithm performance typically involves a careful examination of how an algorithm moves data through the memory hierarchy. Unfortunately, the cache hierarchies and memory management systems evolve at a very fast pace. Increasingly, there is often a non-obvious relationship between algorithmic parameters such as blocking strategies, their impact on memory utilization, and in turn the relationship with runtime issues.. For example, on GPUs, performance can be highly sensitive to the degree to which threads in a thread block all execute the same code: performance will degrade when there is conditional branching and threads execute different code paths. Recent work has shown there is not necessarily a clear correlation between the amount of memory traffic and absolute runtime (Datta et al. 2009b ), a result confirmed by our study here. At best, multi-processor algorithmic performance models, which are derived using a combination of architectural knowledge and empirical runtime observations, can predict performance bounds, but do not always offer advice on how algorithms should be tuned to produce optimal performance, particularly in light of architecture-specific characteristics, such as thread divergence on GPUs.. As a result, the computational science community has evolved a technique known as 'auto-tuning' which is methodology for finding the combinations of tunable algorithmic parameters that result in the best performance of an algorithm on a particular platform for a particular problem size. This approach has been used with success to optimize the performance of stencil-based codes on multi-core CPUs and many-core GPUs (Datta et al. 2008 (Datta et al. , 2009b Hollingsworth and Tiwari 2010; Kamil et al. 2010; Williams et al. 2010) . Auto-tuning is based upon the premise that one can enumerate all possible tunable configurations of an algorithm. As the number of potential permutations of configuration can be quite large, search strategies have emerged as a research area to avoid having to perform an exhaustive search of all possible configurations.. The contribution of this work is an application of autotuning principles (the systematic exploration of tunable algorithmic parameters, known algorithmic optimizations, and memory layout strategies) to study the relative performance gain of a staple visualization algorithm, raycasting volume rendering, on two multi-core CPUs and one many-core GPU by measuring absolute runtime as well as memory cache utilization (L2 cache misses via hardware performance counters). The comparison of hardware performance counter and runtime data helps to provide deeper insight into the relationship between memory traffic, cache utilization, and absolute runtime for volume rendering using known algorithmic optimizations. Our test results reveal a wide variation in runtime performance across all platforms and datasets, as much as 254% on the CPU and 265% on the GPU. The settings that produce the best performance vary from problem to problem and platform to platform, often in a non-obvious way. For example, our results indicate the best-performing configurations on the GPU occur at a crossover between memory utilization and thread divergence, a result that is likely to be extremely difficult, if not impossible, to predict with an empirical performance model.. The auto-tuning methodology, which is familiar to the computational science community, is relatively unexplored in the visualization community. The settings and algorithmic optimizations that result in the 'best performance' will change as platforms evolve: our results suggest very different settings than earlier work due to the evolution in memory and processor technology. The focus of this work is a thorough study of the performance and memory utilization characteristics of known algorithmic optimizations on modern platforms. The findings reveal insights about their performance on modern platforms, including the fact that an optimization (Z-order memory layout) initially designed to be 'cache friendly' on decade-old single-core technology is surprisingly beneficial on modern GPUs. The autotuning methodology will likely prove useful in suggesting new algorithmic optimizations and evolution on future platforms where core density increases along with the cost of moving data through the memory hierarchy. The main point of this study has been to explore the relationship between tunable algorithm parameters and known algorithmic optimizations and the resulting impact on performance of a staple visualization algorithm on modern multi-core and many-core platforms. Our results suggest a wide variation in performance can result: up to 254% on multi-core CPUs and 265% on many-core GPUs. We used the findings of this study to set tunable algorithmic parameters for a set of extreme-concurrency runs (Howison et al. 2010 (Howison et al. , 2011 that required literally millions of CPU hours; by finding and using optimal settings for tunable algorithmic parameters, we in effect saved millions of (a) Transfer function 'A' (b) Transfer function 'B' Figure 6 . Two different transfer functions have different benefits from early ray termination (ERT), but also yield images that accentuate different features of the underlying dataset. For the results presented in this paper, we used transfer function 'A'. Figure 7 . The performance gains (averaged across thread block size, with ERT) from using Z-ordered memory instead of arrayordered increase with concurrency. The gains are most notable on the NVIDIA/Fermi, where we count the number of threads per block as the concurrency.. additional CPU hours that would have been spent executing an application in a non-optimal configuration. This work, which uses a well-established methodology for finding optimal performance, shows that such a methodology can be useful for visualization algorithms as well, and that the algorithmic parameters that produce the best performance vary from problem to problem and platform to platform, often in a non-obvious way. Our GPU results underscore this result: the best performance results in what appears to be a crossover point between cache utilization and thread warp size and thread divergence that occurs due to this particular algorithm. This approach helps empirically establish algorithmic parameters that may be difficult, if not impossible, to determine using a performance model that predicts performance bounds, and has been widely used in the computational science community with great success (Datta et al. 2009b, a; Kamil et al. 2010 ).. The algorithm we study, raycasting volume rendering with perspective projection, uses an unstructured, or irregular memory access pattern. Each ray will, in effect, execute a different traversal path through memory, and the set of paths and the number of computational steps each requires is a function of runtime parameters, such as viewpoint, data set, and color transfer function. Other visualization algorithms exhibit similar memory access characteristics, such as parallel streamline computation (Camp et al. 2011) , and could benefit from this performance optimization methodology.. An avenue for future work would be to expand the scope of algorithmic parameters and options and discover how they inform performance within the context of the autotuning approach. Does the cost of branch prediction in the inner ray integration loop outweigh the benefit of an acceleration option such as ERT? In object-order (bricking) approaches, what is the relationship between brick size/ shape and actual observed cache utilization? How well would a bricking strategy work on the GPU, and does its use improve memory access patterns on the GPU? Would an alternate encoding of data in bricks, such as using a space-filling curve layout, result in better or worse utilization of the memory hierarchy, and what is the relationship of that performance with brick size and shape? How does a change in final image resolution alter the choice of block size? Could predictive performance models be enhanced to include some statistical estimation of runtime given known variability in algorithm performance that depends upon data or runtime characteristics? What is the impact of multi-field data, particularly with respect to memory utilization, and do the lessons learned for scalar data apply to complex data types?. Another avenue of future work would be to explore the efficacy of alternative programming environments, such as MapReduce (Dean and Ghemawat 2008) , for use on multiand many-core systems. Recent work by Stuart and Owens (2011) pursues this line of investigation for several computational kernels. Interestingly, their implementation of a GPU-capable MapReduce library 'relaxes' some of the MapReduce semantics to expose GPU-centric features, such as thread block size, although it is not clear whether this kind of control, which is necessary for auto-tuning, exists outside of Stuart and Owens' GPMR library, for example on multi-core CPU implementations. Even though our shared-memory implementation does not have an explicit 'reduce' step, one desirable outcome would be the ability to write code once that runs on many different types of platforms. Given that the settings that produce optimal performance vary by platform, dataset, and other runtime attributes, there seems to be a clear benefit to using an autotuning methodology to find those that produce optimal performance rather than by-hand coding. Levoy's formulation for raycasting volume rendering is the process of casting rays through a 3D volume and integrating color and opacity along the ray's length to produce a final pixel color (Levoy 1988) . A common approach for parallelizing this staple visualization algorithm produces what is known as 'hybrid volume rendering' (Ma et al. 1993; Tiwari and Huntsberger 1994; Ma 1995; Bajaj et al. 1999) , which is a two-stage algorithm where data is partitioned across processors to be rendered with raycasting (Drebin et al. 1988; Levoy 1988; Sabella 1988; Upson and Keeler 1988) . Each processor generates a partial image, and these are combined in a second algorithmic stage using compositing (Drebin et al. 1988; Levoy 1988; Upson and Keeler 1988) . Nieh and Levoy (1992) describe a parallel ray tracing volume rendering algorithm that runs on a sharedmemory platform and uses a task-queue image partitioning technique where screen pixels are partitioned amongst processors. Palmer et al. (1998) studied two parallel partitioning and dynamic load balancing algorithms to explore the tradeoffs between their memory hierarchy performance. They suggest that image-order decomposition strategies suffer from a lack of locality in accessing the 3D volume data: during the ray integration loop, the most resource intensive part of the raycasting volume rendering algorithm, a given ray may need to access any voxel within the source volume. This lack of locality can result in 'cache thrashing', which is a relatively low level of cache reuse. They report that object-parallel partitionings scale well, and this form of partitioning has been adopted as the basis for parallel work decomposition in many subsequent works (e.g. Hsu 1993; DeMarle et al. 2003; Cavin et al. 2005; Yu et al. 2008) . In contrast, our work here is a more comprehensive, systematic exploration of the relationship between algorithmic optimization and tunable algorithmic parameters (image tile size, work assignment strategy, and alternative memory layouts for the source data, and algorithmic optimizations) and their impact on algorithm performance in terms of runtime and cache utilization measured via hardware performance counters.. Looking more closely at the impact of memory accesses and algorithmic performance, Grim et al. (2004) explored the performance impact resulting when varying the size of data blocks allocated to processors in object-order parallel volume rendering on a shared-memory, multi-core CPU platform. Their objective is to minimize the number of repeated voxel loads, so their approach is to use an 'advancing ray-front' approach (Law and Yagel 1996) combined with small data blocks that will fit within cache so as to exploit spatial locality. In contrast, our approach is to exploit temporal, rather than spatial coherence, in an image-parallel approach that is portable to multi-core CPUs and many-core GPUs, as well as comparing performance of alternative memory layouts.. With the aim of exploring a memory layout that is more 'cache friendly', Pascucci and Frank (2001) used an indexing scheme based upon the Lebesgue, or Z-order, space-filling curve to improve and optimize progressive visualization algorithms. This data layout has desirable spatial locality properties: at any point in the mesh, nearby points are nearby in memory or storage. In our study, we wish to compare the performance impact of this type of data layout in sharedmemory parallel raycasting volume rendering with arrayorder memory layout and with interactions of other algorithmic optimizations and tunable algorithmic parameters.. Whereas CPU-based volume rendering techniques span both object-and image-order parallel approaches, GPUbased volume rendering algorithms tend to exploit imagelevel parallelism. Examples including implementing volume rendering as a fragment program with raycasting (Krüeger and Westermann 2003; Stegmaier et al. 2005; Gobbetti et al. 2008; . The basic idea with these implementations is to draw a proxy geometry where the fragment program, invoked during rasterization, performs the actual raycasting volume rendering. The degree of parallelism is a function of the number of fragment programs that can be run at once by a given GPU. With this approach, there is no direct opportunity for tuning algorithm performance in terms of parameters such as block size, which may provide the opportunity for performance gains through improved temporal cache locality. Marsalek et al. (2008) implement a raycasting volume rendering kernel in CUDA. As with our CUDA implementation, theirs is an image-parallel approach where each CUDA thread performs raycasting on an image pixel. Their results suggest that CUDA kernels perform at a rate commensurate with earlier fragment-based approaches. They achieve a performance boost by a process of manual experimentation with thread block size, the number of threads per thread block, to find a good balance between register and shared memory use. In contrast, we systematically explore and report on the performance impact of varying the thread block size as well as alternative memory layouts.. In recent years, there has been a great deal of activity focusing on optimizing the performance of codes on parallel computing platforms. Given the diversity of computer architectures, along with their rapid change, a technique known as 'auto-tuning' has emerged as a way to tune codes to achieve optimal performance (Datta et al. 2008; Hollingsworth and Tiwari 2010; Williams et al. 2010) . Auto-tuning is based upon the premise that one can enumerate all possible tunable configurations of an algorithm for a given problem size. As the number of potential permutations of configuration can be quite large, search strategies have emerged as a research area to avoid having to perform an exhaustive search of all possible configurations. Alternately, some recent research, such as that by de la Cruz and Araya-Polo (2011), focuses on deriving a predictive performance model for a 3D stencil computation code, which has a uniform and predictable memory access pattern. The problem we are studying here, raycasting volume rendering, is representative of a class of algorithm that performs 'unstructured' or 'non-uniform' memory access. In particular, since our implementation uses perspective projection during rendering (Foley et al. 1990 ), each of the rays through the volume will diverge from one another along their length moving away from the viewpoint. The result is that each ray's memory access pattern is different than all other ray's memory access patterns. Therefore, this application is well suited for auto-tuning. While we perform what amounts to an exhaustive search of the space of tunable algorithmic parameters, interesting future work could focus on using one of several different search strategies to avoid the expensive exhaustive search.. Our work extends previous studies to explore the effect of varying the size of the image-tile partitioning and memory layout options in a shared-memory volume renderer on modern multi-core CPU and many-core GPU platforms. Specifically, we wish to understand the relationship between various tunable algorithmic parameters, namely tile size and shape, and memory layout alternative, with performance on a variety of platforms run on a variety of different problems. Do different size or shape tiles or different memory layouts result in better use of memory hierarchy? What is the difference in performance that results from different configurations? Is the performance and memory utilization sufficiently variable to warrant use of auto-tuning for large, production runs? Does a known algorithmic optimization, such as early ray termination, offer a performance gain on a platform such as the GPU where there is a performance penalty for thread divergence?. These questions help us to better understand how tunable algorithmic parameters can affect performance on multi-and many-core systems. While the work in this study focuses on single-node rather than extreme concurrency configurations, our work here helps to reveal how to improve performance at extreme concurrencies by speeding the shared-memory parallel raycasting volume rendering by establishing algorithmic parameter settings that result in optimal, or near-optimal, performance. These single-socket configurations then comprise building blocks in large-scale multi-core hybrid-parallel and hybrid volume rendering applications executed at extreme concurrency, as in the case of recent work by Howison et al. (2010) , or in situations where multiple GPUs are employed as part of a distributedmemory parallel implementation ). Given that we are using an image-order algorithm, and that we are dividing up the work by having each thread work on a subset of the total image, we adopt the term 'block size' to refer to the size of the image tile assigned to a thread in the CPU version or a CUDA thread block in the GPU version.. Our primary research goal is to determine how much performance varies as a function of block size and layout of data in memory by measuring runtime and cache utilization characteristics.. The runtime we measure is the elapsed time required to perform raycasting and store a resulting pixel buffer. It does not take into account I/O time for either storing an image or loading the data, which is known to account for a sizeable fraction of total rendering time in large-data visualization applications. We are not trying to solve the I/O problem, and our focus on rendering only is appropriate for many use cases, such as creating multiple images from the same dataset as is typical of interactive visualization applications. For this same reason, we do not include the time required by our CUDA implementation for memory transfers between host and device.. Our second performance metric is L2 cache misses, which offers a more detailed picture of memory traffic. To obtain this data, we use the Performance Application Programming Interface (PAPI) 1 for the CPU platforms. PAPI requires a kernel module as well as application instrumentation via a simple API to specify which hardware counters to monitor. 2 On the GPU platform, we used the profiler available with the CUDA Toolkit version 3.2. 1 Conventional thinking is that there is a strong correlation between lower memory traffic levels and increased performance, however this is not always the case (Datta et al. 2009a ).

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


The Sum of D Small-Bias Generators Fools Polynomials of Degree D Abstract. We prove that the sum of d small-bias generators L : F s → F n fools degree-d polynomials in n variables over a field F, for any fixed degree d and field F, including F = F 2 = {0, 1}. Our result builds on, simplifies, and improves on both the work by Bogdanov and Viola (FOCS '07) and the follow-up by Lovett (STOC '08). The first relies on a conjecture that turned out to be true only for some degrees and fields, while the latter considers the sum of 2 d small-bias generators (as opposed to d in our result). A pseudorandom generator G : F s → F n for polynomials of degree d over a field F is an efficient procedure that stretches s field elements into n s field elements and fools any polynomial of degree d in n variables over F: For every such polynomial p, the statistical distance between p(U ), for uniform U ∈ F n , and p(G(S)), for uniform S ∈ F s , is at most a small . The fundamental case of linear, i.e. degree-1, polynomials is first studied by Naor & Naor (1993) who give a generator with seed length s = O(log |F| n) (for error = 1/n), which is optimal up to constant factors (cf. Alon et al. (1992) ).. 1 This generator is known as small-bias generator, and is one of the most celebrated results in pseudorandomness, with a myriad of applications (see, e.g., the references in Bogdanov & Viola (2007) ). The case of higher degree is first addressed by Luby et al. (1993) , and a decade later by Bogdanov (2005) . However, the generators in these two works have poor seed length or only work over large fields.. Recently, Bogdanov & Viola (2007) introduce a new approach to attack this problem over small fields, which we now describe. The work considers the generator G k : F s → F n that is obtained by summing k copies of a small-bias generator L :. where the sum is element-wise. Bogdanov & Viola (2007) shows that such a generator can be analyzed using the so-called Gowers norms. Bogdanov & Viola (2007) .. Recently, Green & Tao (2007) prove that d-ICG is true over prime fields of size bigger than the degree d of the polynomial. On the negative side, Green & Tao (2007) , and independently , show that d-ICG is false in some cases over fields of size smaller than the degree of the polynomial (which in particular falsifies the more general Inverse Conjecture for the Gowers norm (Green & Tao 2008; Samorodnitsky 2007) ). This falsity prevents the analysis in Bogdanov & Viola (2007) from going through for small fields, notably over F 2 = {0, 1}. Still, it was left open to understand whether, regardless of inverse conjectures, the generator G d in Bogdanov & Viola (2007) fools polynomials of degree d over small fields such as F 2 . In this work we answer this question in the affirmative.

O O O O B O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O


Learning about meetings Most people participate in meetings almost every day, multiple times a day. The study of meetings is important, but also challenging, as it requires an understanding of social signals and complex interpersonal dynamics. Our aim in this work is to use a data-driven approach to the science of meetings. We provide tentative evidence that: (i) it is possible to automatically detect when during the meeting a key decision is taking place, from analyzing only the local dialogue acts, (ii) there are common patterns in the way social dialogue acts are interspersed throughout a meeting, (iii) at the time key decisions are made, the amount of time left in the meeting can be predicted from the amount of time that has passed, (iv) it is often possible to predict whether a proposal during a meeting will be accepted or rejected based entirely on the language (the set of persuasive words) used by the speaker. The scientific field of meeting analysis is still in beginning stages; meetings have not yet been well characterized, and this is one of the first works in this new scientific arena. Several hypotheses made in this work cannot be tested further with any current available dataset. We hope that by illuminating the potential of fully solving these problems, it will inspire the creation of new meetings corpora. Elaborating further, if we are able to automatically detect when key decisions are made, this could translate directly into a software tool that managers could use to determine when they should join an ongoing meeting of their staff without attending the full meeting. If we know common patterns of dialogue, this might help us to understand social cues better for business settings, and could potentially help reconstruct parts of dialogue that might not have been recorded properly. If we can automatically detect when a meeting's key decisions are made, and can accurately gauge the meeting wrap-up time, it can give us something immediately valuable, namely an estimated time for the end of the current meeting, which staff can use to plan ahead for the start of the next meeting, or to plan transportation, in a fast-paced corporate culture. If we truly knew which words were persuasive, we could use these words to help convey our ideas in the most favorable light. Before we can do all of this, however, we need to understand the science behind meetings, and make hypotheses that can be tested, which is the goal of this work. The closest work to ours is that of the Cognitive Assistant that Learns and Organizes (CALO) project (SRI International 2003 -2009 , which takes a bottom-up approach to designing a cognitive assistant that can reason and learn from users using machine learning techniques. Although the CALO project's focus (e.g., speech recognition, sentence segmentation, dialogue act tagging, topic segmentation, action item detection and decision extraction) does not intersect with our work, it is worthwhile to note that this multi-year project has made a definite step towards improving meetings using machine learning techniques. However, as pointed out by Tur et al. (2010) , a number of challenges (e.g. extracting task descriptions) still exist before this tool can be integrated into daily life. The insights into meetings obtained through our work could be used as part of a top-down approach to design such a tool.. We believe our work is the first to take a truly data-driven approach to finding persuasive words; this is the first work to try to prove that a word is persuasive using data.. Qualitative work: Research on group decision making processes traditionally appears in qualitative studies. Works along these lines attempt to understand and model the course of agreement (Black 1948) , design features to track the course of negotiation (Eugenio et al. 1999) , develop theories for group decision making (Davis 1973) and study different group decision-making schemes (Green and Taber 1980) .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Fourier slice photography This paper contributes to the theory of photograph formation from light fields. The main result is a theorem that, in the Fourier domain, a photograph formed by a full lens aperture is a 2D slice in the 4D light field. Photographs focused at different depths correspond to slices at different trajectories in the 4D space. The paper demonstrates the utility of this theorem in two different ways. First, the theorem is used to analyze the performance of digital refocusing, where one computes photographs focused at different depths from a single light field. The analysis shows in closed form that the sharpness of refocused photographs increases linearly with directional resolution. Second, the theorem yields a Fourier-domain algorithm for digital refocusing, where we extract the appropriate 2D slice of the light field's Fourier transform, and perform an inverse 2D Fourier transform. This method is faster than previous approaches. A light field is a representation of the light flowing along all rays in free-space. We can synthesize pictures by computationally tracing these rays to where they would have terminated in a desired imaging system. Classical light field rendering assumes a pin-hole camera model [Levoy and Hanrahan 1996; Gortler et al. 1996 ], but we have seen increasing interest in modeling a realistic camera with a lens that creates finite depth of field [Isaksen et al. 2000; Vaish et al. 2004; Levoy et al. 2004] . Digital refocusing is the process by which we control the film plane of the synthetic camera to produce photographs focused at different depths in the scene (see bottom of Figure 8 ).. Digital refocusing of traditional photographic subjects, including portraits, high-speed action and macro close-ups, is possible with a hand-held plenoptic camera [Ng et al. 2005] . The cited report describes the plenoptic camera that we constructed by inserting a microlens array in front of the photosensor in a conventional camera. The pixels under each microlens measure the amount of light striking that microlens along each incident ray. In this way, the sensor samples the in-camera light field in a single photographic exposure.. This paper presents a new mathematical theory about photographic imaging from light fields by deriving its Fourier-domain representation. The theory is derived from the geometrical optics of image formation, and makes use of the well-known Fourier Slice Theorem [Bracewell 1956 ]. The end result is the Fourier Slice Photography Theorem (Section 4.2), which states that in the Fourier domain, a photograph formed with a full lens aperture is a 2D slice in the 4D light field. Photographs focused at different depths correspond to slices at different trajectories in the 4D space. This Fourier representation is mathematically simpler than the more common, spatial-domain representation, which is based on integration rather than slicing.. Sections 5 and 6 apply the Fourier Slice Photography Theorem in two different ways. Section 5 uses it to theoretically analyze the performance of digital refocusing with a band-limited plenoptic camera. The theorem enables a closed-form analysis showing that the sharpness of refocused photographs increases linearly with the number of samples under each microlens.. Section 6 applies the theorem in a very different manner to derive a fast Fourier Slice Digital Refocusing algorithm. This algorithm computes photographs by extracting the appropriate 2D slice of the light field's Fourier transform and performing an inverse Fourier transform. The asymptotic complexity of this algorithm is O(n 2 log n), compared to the O(n 4 ) approach of existing algorithms, which are essentially different approximations of numerical integration in the 4D spatial domain. It is worth summarizing the point of the analysis in Section 5. On a meta-level, this section has demonstrated the theoretical utility of the Fourier Slice Photography Theorem, applying it several times in deriving Eqs. 10, 13 and 14.. At another level, this section has derived two end results that are of some importance. The first is the Filtered Light Field Photography Theorem, which is a simple but general signal-processing tool for analyzing light field imaging systems. The second is the fact that making a simple band-limited assumption about plenoptic cameras [Ng et al. 2005 ] camera, using digital refocusing (via Eq. 3) in the latter case. The sensor depth is given as a fraction of the film depth that brings the target into focus. Note that minor refocusing provides the plenoptic camera with a wider effective depth of focus than the conventional system. Also note how the field of view changes slightly with the sensor depth, a change due to divergence of the light rays from the lens aperture.. yields an analytic proof that limits on digital refocusing improve linearly with directional resolution. Experiments with the plenoptic camera that we built achieved refocusing performance within a factor of 2 of this theory [Ng et al. 2005] . With N u = 12, this enables sharp refocusing of f/4 photographs within the wide depth of field of an f/22 aperture. The main contribution of this paper is the Fourier Slice Photography Theorem. By describing how photographic imaging occurs in the Fourier domain, this simple but fundamental result provides a versatile tool for algorithm development and analysis of light field imaging systems. This paper tries to present concrete examples of this utility in analyzing a band-limited plenoptic camera, and in developing the Fourier Slice Digital Refocusing algorithm.. The band-limited analysis provides theoretical backing for recent experimental results demonstrating exciting performance of digital refocusing from plenoptic camera data [Ng et al. 2005] . The derivations also yield a general-purpose tool (Eq. 10) for analyzing plenoptic camera systems.. The Fourier Slice Digital Refocusing algorithm is asymptotically faster than previous approaches. It is also efficient in a practical sense, thanks to the optimized Kaiser-Bessel resampling strategy borrowed directly from the tomography literature. Continuing to exploit this connection with tomography will surely yield further benefits in light field processing.. A clear line of future work would extend the algorithm to increase its focusing flexibility. Presented here in its simplest form, the algorithm is limited to full-aperture refocusing. Support for different apertures could be provided by appropriate convolution in the Fourier domain that results in a spatial multiplication masking out the undesired portion of the aperture. This is related to work in Fourier volume shading [Levoy 1992] .. A very different class of future work might emerge from looking at the footprint of photographs in the 4D Fourier transform of the light field. It is a direct consequence of the Fourier Slice Photography Theorem (consider Eq. 9 for all α) that the footprint of all full-aperture photographs lies on the following 3D manifold in the 4D Fourier space:. where α ∈ [0, ∞), and kx, ky ∈ R. Two possible lines of research are as follows. First, it might be possible to optimize light field camera designs to provide greater fidelity on this manifold, at the expense of the vast remainder of the space that does not contribute to refocused photographs. One could also compress light fields for refocusing by storing only the data on the 3D manifold.. Second, photographs focused at a particular depth will contain sharp details (hence high frequencies) only if an object exists at that depth. This observation suggests a simple Fourier Range Finding algorithm: search for regions of high spectral energy on the 3D manifold at a large distance from the origin. The rotation angle of these regions gives the depth (via the Fourier Slice Photography Theorem) of focal planes that intersect features in the visual world. The closest related Fourier analysis is the plenoptic sampling work of Chai et al. [2000] . They show that, under certain assumptions, the angular band-limit of the light field is determined by the closest and furthest objects in the scene. They focus on the classical problem of rendering pin-hole images from light fields, whereas this paper analyzes the formation of photographs through lenses.. Imaging through lens apertures was first demonstrated by Isaksen et al. [2000] . They qualitatively analyze the reconstruction kernels in Fourier space, showing that the kernel width decreases as the aperture size increases. This paper continues this line of investigation, explicitly deriving the equations for full-aperture imaging from the radiometry of photograph formation.. More recently, Stewart et al. [2003] have developed a hybrid reconstruction kernel that combines full-aperture imaging with band-limited reconstruction. This allows them to optimize for maximum depth-of-field without distortion. In contrast, this paper focuses on fidelity with full-aperture photographs that have finite depth of field.. The plenoptic camera analyzed in this report was described by Adelson and Wang [1992] . It has its roots in the integral photography methods pioneered by Lippman [1908] and Ives [1930] . Numerous variants of integral cameras have been built over the last century, and many are described in books on 3D imaging [Javidi and Okano 2002; Okoshi 1976] . For example, systems very similar to Adelson and Wang's were built by Okano et al. [1999] and Naemura et al. [2001] , using graded-index (GRIN) microlens arrays. Another integral imaging system is the Shack-Hartmann sensor used for measuring aberrations in a lens [Tyson 1991] . A different approach to capturing light fields in a single exposure is an array of cameras [Wilburn et al. 2005] . Consider the light flowing along all rays inside the camera. Let LF be a two-plane parameterization of this light field, where We parameterize the 4D light field, L F , inside the camera by two planes. The uv plane is the principal plane of the lens, and the xy plane is the sensor plane. L F (x, y, u, v) is the radiance along the given ray. LF (x, y, u, v) is the radiance along the ray traveling from position (u, v) on the lens plane to position (x, y) on the sensor plane (see Figure 1) . F is the distance between the lens and the sensor. Let us consider how photographs are formed from the light field in conventional cameras and plenoptic cameras. . By the theorem, this final result is Pα [LF ] = E F the photo focused on world plane W . This step takes O(n 2 log n) time. Figure 8 illustrates the steps of the algorithm.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


An Optimal Hardware-Algorithm for Sorting Using a Fixed-Size Parallel Sorting Device We present a hardware-algorithm for sorting N elements using either a p-sorter or a sorting network of xed I/O size p, while strictly enforcing con ict-free memory accesses. To the best of our knowledge, this is the rst realistic design that achieves optimal time performance, running in ? N log N p log p time for all ranges of N. Our result completely resolves the problem of designing an implementable, time-optimal algorithm for sorting N elements using a p-sorter. More importantly, however, our result shows that in order to achieve optimal time performance all that is needed is a sorting network of depth O(log 2 p) such as, for example, Batcher's classic bitonic sorting network. Recent advances in VLSI have made it possible to implement algorithm-structured chips as building blocks for high-performance computing systems. Since sorting is one of the most fundamental computing problems, it makes sense to endow general-purpose computer systems with a special-purpose parallel sorting device, invoked whenever its services are needed.. In this article, we address the problem of sorting N elements using a sorting device of I/O size p, where N is arbitrary and p is xed. The sorting device used is either a p-sorter or a sorting network of xed I/O size p. We assume that the input as well as the partial results reside in several constant-port memory modules. In addition to achieving time-optimality, it is crucial that we sort without memory access con icts.. In real-life applications, the number N of elements to be sorted is much larger than the xed size p that a sorting device can accommodate. In such a situation, the sorting device must be used repeatedly in order to sort the input. The following natural question arises: \How should one schedule memory accesses and the calls to the sorting device in order to achieve the best possible sorting performance?" Clearly, if this question does not nd an appropriate answer, the power of the sorting device will not be fully utilized.. A p-sorter is a sorting device capable of sorting p elements in constant time. Computing models for a psorter do exist. For example, it is known that p elements can be sorted in O(1) time on a p p recon gurable T , the time required for sorting becomes O(D(T ) f(N; p)). To eliminate this O(D(T )) slowdown factor, the network must be used in a pipelined fashion. In turn, pipelining requires that su cient parallelism in the p-sorter operations be identi ed and exploited. Recently, Olariu, Pinotti and Zheng 9] introduced a simple but restrictive design { the row merge model { and showed that in this model N elements can be sorted in N p log N time using either a p-sorter or with a sorting network of I/O size p. To achieve better sorting performance, a new algorithm-structured architecture must be designed. This involves devising a sorting algorithm suitable for hardware implementation and, at the same time, an architecture on which the algorithm can be executed directly. Such an algorithm-architecture combination is commonly referred to as a hardware-algorithm. The major contribution of this article is to present the rst realistic hardware-algorithm design for sorting an arbitrary number of input elements using a xedsize sorting device in optimal time, while strictly enforcing con ict-free memory accesses. We introduce a parallel sorting architecture specially designed for implementing a carefully designed algorithm. The components of this architecture include a parallel sorting device, a set of random-access memory modules, a set of conventional registers, and a control unit. This architecture is very simple and feasible for VLSI realization.. We show that in our architectural model N elements can be sorted in N log N p log p time using either a p-sorter or a sorting network of xed I/O size p and depth O(log 2 p). In conjunction with the theoretical work of 2], our result completely resolves the problem of designing an implementable, time optimal, algorithm for sorting N elements using a p-sorter. More importantly, however, our result shows that in order to achieve optimal sorting performance a p-sorter is not really necessary: all that is needed is a sorting network of depth O(log 2 p) such as, for example, Batcher's classic bitonic sorting network. As we see it, this is exceedingly important since any known implementation of a p-sorter requires powerful processing elements, whereas Batcher's bitonic sort network uses simple comparators.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Fast multipole method applied to 3-D frequency domain elastodynamics This article is concerned with the formulation and implementation of a fast multipoleaccelerated BEM for 3-D elastodynamics in the frequency domain, based on the so-called diagonal form for the expansion of the elastodynamic fundamental solution, a multi-level strategy. As usual with the FM-BEM, the linear system of BEM equations is solved by GMRES, and the matrix is never explicitly formed. The truncation parameter in the multipole expansion is adjusted to the level, a feature known from recent published studies for the Maxwell equations. A preconditioning strategy based on the concept of sparse approximate inverse (SPAI) is presented and implemented. The proposed formulation is assessed on numerical examples involving O(10 5 ) BEM unknowns, which show in particular that, as expected, the proposed FM-BEM is much faster than the traditional BEM, and that the GMRES iteration count is significantly reduced when the SPAI preconditioner is used. The boundary element method (BEM) is a mesh reduction method. However, in traditional BEM implementations, the resulting dimensional advantage with respect to domain discretization methods is offset by the fully-populated nature of the governing discretized system of equations, with set-up and solution times rapidly increasing with the number N of unknown BEM degrees of freedon (DOFs). It is therefore important to formulate alternative strategies which allow to take advantage of the proven efficiency of BEMs for e.g. analyses involving unbounded media, fracture mechanics, or inverse problems when large numbers of degrees of freedom (DOFs) are considered. Approaches such as symmetric Galerkin BEMs and BEM-FEM coupling, when developed within traditional set-up and solution algorithms, do not fully address these concerns because they do not lead to lowered complexities (i.e. CPU and memory requirements grow with N at the same rate).. Fast BEMs, i.e. BEMs having a complexity lower than that of traditional BEMs, appeared around 1985. Rokhlin [1] presented a O(N) per iteration integral-equation approach for solving 2-D Laplace problems. The Fast Multipole Method (FMM) terminology was introduced first by Greengard [2] , in the context of many-particle simulations. Thereafter, the FMM led to fast multipole-accelerated boundary element methods (FM-BEMs), whose scope and capabilities have since rapidly progressed, especially in connection with application in electromagnetics [3, 4] , but also in other fields including computational mechanics. Many of these investigations are summarized in a review article by Nishimura [5] .. This article is concerned with the formulation and implementation of a FM-BEM for 3-D elastodynamics in the frequency domain. Very few references address this particular area of application. FM-BEM formulation for elastodynamics in the time domain and the frequency domain have been proposed by Takahashi et al. [6] and Fujiwara [7] , respectively. This work is based on the same general approach as that of [7] , which uses the so-called diagonal form for the expansion of the elastodynamic fundamental solution. This approach is suitable for moderate to medium frequencies. The upper limit stems from the fact that the size N becomes intractable at high frequencies, while the diagonal form breaks down at very low frequencies and must be replaced with other types of expansions, based on e.g. the Wigner-3j symbols [8] or the so-called stable plane wave expansion [9] . The present work differs from [7] in details of the formulation that substantially impact the overall efficiency, and especially the fact that the truncation parameter in the multipole expansion should be adjusted to the subdivision level. This feature, known from previous studies for the Maxwell equations (e.g. [10] ), is incorporated in the present implementation but not in that of [7] .. This article is organized as follows. The necessary background concepts and notations are reviewed in section 2. Then, some details of the elastodynamic FM-BEM are discussed in section 3. A preconditioning strategy based on the concept of sparse approximate inverse (SPAI) is presented in section 4. Finally, the present formulation is assessed on numerical examples in section 5, and the paper closes with concluding remarks. A fast multipole accelerated BEM formulation for solving 3-D frequency domain elastodynamics has been presented in this paper. The expansion of the elastodynamic kernels is based on the diagonal-form, plane-vave, expansion of the scalar acoustic full-space fundamental solution. The divergent behaviour in the large-index limit of the spherical Hankel function of the first kind featured in that expansion led to the imposition of a minimum size (relative to the wavelength) for the leaf cells. Another important parameter, namely the truncation parameter of the transfer function, is determined as a function of the cell size (and hence the level) by means of a rule previously introduced for time-harmonic acoustic or electromagnetic computations.. Numerical results show that the numerical solution obtained by the present elastodynamic FM-BEM is, in practical terms, identical to that obtained by the traditional BEM (the two solutions differ by at most 3%) while requiring about 10 times less CPU time for the examples run (which were of size N = O(10 4 − 10 5 ). The convergence rate of the GMRES iterative solver was found to be significantly accelerated by left-preconditioning the linear system with the sparse approximate inverse (SPAI) technique.

B I I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O