Utilizing

RxNorm

to

Support

Practical

Computing

Applications:

Capturing

Medication

History

in

Live

Electronic

Health

Records

RxNorm

was

utilized

as

the

basis

for

direct-capture

of

medication

history

data

in

a

live

EHR

system

deployed

in

a

large,

multi-state

outpatient

behavioral

healthcare

provider

in

the

United

States

serving

over

distinct

patients

each

year

across

clinical

locations.

This

tool

incorporated

autocomplete

search

functionality

for

medications

and

proper

dosage

identification

assistance.

The

overarching

goal

was

to

understand

if

and

how

standardized

terminologies

like

RxNorm

can

be

used

to

support

practical

computing

applications

in

live

EHR

systems.

We

describe

the

stages

of

implementation,

approaches

used

to

adapt

RxNorm's

data

structure

for

the

intended

EHR

application,

and

the

challenges

faced.

We

evaluate

the

implementation

using

a

four-factor

framework

addressing

flexibility,

speed,

data

integrity,

and

medication

coverage.

RxNorm

proved

to

be

functional

for

the

intended

application,

given

appropriate

adaptations

to

address

high-speed

input/output

(I/O)

requirements

of

a

live

EHR

and

the

flexibility

required

for

data

entry

in

multiple

potential

clinical

scenarios.

Future

research

around

search

optimization

for

medication

entry,

user

profiling,

and

linking

RxNorm

to

drug

classification

schemes

holds

great

potential

for

improving

the

user

experience

and

utility

of

medication

data

in

EHRs.

RxNorm

is

a

standardized,

controlled

terminology

for

medications

in

the

United

States.

It

includes

multiple

components

-medication

name

(both

generic

and

brand),

dosage,

route

of

administration,

ingredients,

and

fully-specified

"common

dose

forms"

(i.e.,

what

a

physician

might

enter

as

part

of

a

prescription

to

a

pharmacy)

These

multiple

components

are

linked

together

through

a

relational

file

structure,

easily

portable

into

database

format

RxNorm

was

originally

developed

as

part

of

the

Unified

Medical

Language

System

(UMLS)

effort

to

integrate

and

map

diverse

and

competing

controlled

medical

terminologies

in

order

to

facilitate

interoperability

and

data

exchange

across

healthcare

providers

Early

work

that

led

to

the

development

of

RxNorm

in

UMLS

was

spurred

by

efforts

of

the

Vocabulary

Technical

Committee

in

the

late

A

major

goal

in

developing

RxNorm

was

to

provide

a

consistent,

standardized

way

to

identify

the

essential

components

of

prescriptions

for

purposes

of

facilitating

electronic

capture

of

such

data

in

electronic

health

records

(EHRs)

to

support

the

exchange

of

patient

information

across

providers

(i.e.,

interoperability),

development

of

clinical

decision

support

systems

(CDSS),

quality

improvement

efforts,

and

other

research

endeavors.

Early

efforts

to

utilize

RxNorm

have

primarily

focused

on:

navigating

between

names/codes

across

differing

vocabularies

and

home-grown

legacy

systems,

exchanging

data

across

providers,

and

developing

medication-related

CDSS

Many

of

these

efforts

have

taken

the

approach

of

mapping

existent

EHR

data

into

RxNorm

format

post-hoc

although

there

are

an

increasing

number

of

efforts

to

develop

"direct

capture"

methods

where

prescription

data

are

captured

in

RxNorm

format

at

the

point

of

data

entry

However,

there

is

limited

evidence

about

the

use

and

implementation

of

RxNorm

in

actual

clinical

practice

outside

of

such

research

settings

RxNorm

has

taken

on

increased

importance

with

development

of

Meaningful

Use

standards

in

the

United

States,

which

specified

the

use

of

RxNorm

for

medication

data

in

early

drafts

of

the

standards

Although

the

explicit

requirement

was

removed

in

the

final

draft

for

Stage

Meaningful

Use,

the

standards

still

encourage

RxNorm

use,

and

there

is

a

strong

belief

that

RxNorm

or

an

equivalent

tool

will

be

required

at

Stage

or

of

Meaningful

Use

when

those

standards

are

released

in

order

to

achieve

the

overarching

goal

of

interoperable

health

records..

As

such,

an

increasing

need

exists

to

look

for

alternate

methods

(averse

to,

e.g.,

post-hoc

mapping)

for

capturing

and

transforming

EHR

medication

data

into

RxNorm

format.

This

includes

new

e-prescriptions

as

they

are

ordered

(i.e.,

e-prescribing),

as

well

as

medications

previously

prescribed

(i.e.,

medication

history)

Medication

history

in

a

clinical

(not

pharmacy)

context

includes

such

history

(at

least

within

some

reasonable

time

frame,

e.g.,

the

past

two

years)

for

a

patient

prior

to

the

current

provider's

treatment

episode,

often

provided

by

the

patient

themselves.

Collection

of

such

information

is

specified

as

part

of

Meaningful

Use,

and

such

data

can

be

critically

important

for

identification

of

proper

treatment,

adjusting

baseline

outcomes,

and

reducing

medical

errors

due

to

drug

interactions

For

example,

a

patient

suffering

from

Major

Depression

who

was

on

citalopram

mg

until

months

prior

to

the

start

of

treatment

with

a

new

provider

may

not

represent

a

true

baseline

due

to

residual

effects

of

the

previous

treatment

In

order

to

evaluate

such

a

patient,

as

well

as

to

properly

account

for

potential

outcome

improvement

(or

lack

thereof),

it

is

thus

essential

to

know

the

patient's

medication

history.

This

sort

of

baseline

adjustment

would

also

be

a

necessity

in

any

pay-forperformance

paradigm..

In

the

future,

patient

medication

history

information

will

theoretically

be

available

electronically

via

data

exchange

across

provider

EHRs.

However,

such

electronic

exchange

is

not

imminent,

and

current

methods

for

collecting

medication

history

present

broad

challenges

For

the

time

being,

systems

are

needed

that

are

capable

of

capturing

such

history

in

a

standardized

format

in

the

current

provider's

EHR.

Such

systems

would

also

establish

the

necessary

data

infrastructure

for

future

electronic

exchange

of

standardized

medication

history

data

across

providers,

once

such

capabilities

become

widely

available.

Additionally,

since

medication

history

is

typically

captured

via

patient

selfreport,

techniques

for

applying

RxNorm

for

capturing

medication

history

in

live

clinical

settings

and

EHRs

are

directly

applicable

to

capturing

similar

information

in

research

study

settings

There

are

two

possible

methods

for

capturing

medication

history,

as

mentioned

above:

Mapping

data

from

legacy

systems

into

RxNorm

post-hoc,

or

Direct

capture

of

data

in

RxNormcompatible

format

at

the

point

of

data

entry.

Challenges

with

the

former

scenario

in

real-world

EHR

systems

include

the

fact

that

only

a

certain

percentage

of

medications

map

correctly,

even

with

sophisticated

algorithms

or

intensive,

post-hoc

manual

matching

by

researchers,

and

that

many

successful

mapping

efforts

have

been

limited

to

well-defined

subsets

containing

only

fully-specified

prescriptions

incorporating

National

Drug

Codes

(NDCs)

Even

the

most

sophisticated

algorithms

cannot

overcome

all

the

limitations

of

poorly

collected

medication

history

at

the

point-of-care,

such

as

open-ended

free

text

fields,

non-standard

abbreviations,

or

invalid

combinations

due

to

uncontrolled

data

capture

(e.g.,

recording

a

medication

in

a

non-existent

dose

unit

or

dose

form).

Limiting

medication

data

to

particular

subsets

or

engaging

in

post-hoc

manual

mapping

efforts

is

not

feasible

for

real-world

systems.

Direct

capture

avoids

some

of

these

issues;

however,

there

are

challenges

with

this

approach

as

well.

For

example,

a

medication

missing

in

a

search

list

can

prevent

data

entry

from

occurring

(i.e.,

"medication

coverage").

The

direct

capture

approach

also

necessitates

transforming

the

complex

relational

structure

of

the

original

RxNorm

tables

into

a

bare-bones

structure

to

populate

fields/search

boxes

in

a

web

screen

that

can

support

the

high-speed

input/output

(I/O)

required

for

such

applications,

maintain

high

data

quality,

and

allow

for

flexibility

in

data

capture

Additionally,

any

direct

capture

system

must

be

capable

of

handling

multiple

potential

clinical

scenarios,

such

as

allowing

for

partial

data

capture

when

the

patient

does

not

recall

specific

information

or

lacks

the

faculties

to

report

complete

information

(e.g.,

an

individual

experiencing

psychotic

schizophrenia).

Search

functionality

used

in

direct

capture

approaches

can

also

open

up

further

issues

around

search

optimization

and

information

retrieval

filtering,

commonly

applied

to

web

search

(see

Discussion)..

Here,

we

describe

an

approach

to

direct

capture

utilizing

RxNorm

in

a

live

EHR

system

deployed

in

a

large,

multi-state

outpatient

behavioral

healthcare

provider

in

the

United

States

(Centerstone),

serving

over

distinct

patients

each

year

across

clinical

locations.

The

overarching

goal

is

to

understand

if

and

how

standardized

terminologies

like

RxNorm

can

be

used

to

support

such

practical

computing

applications

in

live

EHR

systems.

As

evidenced

by

the

work

presented

here,

RxNorm

is

a

suitable

terminology

for

capturing

medication

history

in

live

EHRs.

A

restructured

dataset

of

RxNorm

satisfies

the

necessary

requirements..

It

history

directly

from

patients,

which

was

later

extended

to

interact

with

provider/patient

collaborate

eprescribing

tool

called

"MyRxPad"

Nelson

et

al.

summarized

many

of

these

efforts.

Other

researchers

have

focused

efforts

on

utilizing

RxNorm

as

part

of

specific

research

projects

All

of

the

aforementioned

efforts

have

produced

insights

regarding

application

of

RxNorm

toward

developing

web-based

tools,

personal

health

records,

and

specific

research

studies.

This

paper

extends

these

studies

by

exploring

the

necessary

steps

toward

implementation

of

RxNorm

in

an

adapted

form

in

EHRs..

While

many

of

the

issues

described

elsewhere

were

similar

to

those

presented

here

-e.g.,

coverage,

flexibility,

speed

-some

of

the

requirements

for

such

an

EHR

application

proved

to

be

distinct,

There

are

multiple

potential

avenues

for

extension

of

this

work,

particularly

in

regard

to

search

optimization

and

filtering

as

well

as

integrating

drug

classification

schemes

into

RxNorm.

The

search

results

could

be

improved

via

the

use

of

web-search-like

indexing

and

filtering,

similar

to

commonly

used

information

retrieval

techniques

utilizing

click-throughs

and

page

ranking

Such

algorithmic

approaches

to

search

optimization

can

also

incorporate

user

profiling

to

personalize

medication

search

results

based

on

individual

user

behavior

or

behavior

of

users

similar

to

the

current

individual

In

other

words,

the

search

results

that

a

particular

user

(patient

or

provider)

sees

when

entering

medication

information

may

be

ranked

or

organized

based

on

other

medications

they

have

entered

during

the

current

session

or

based

on

past

user

behavior.

For

example,

medications

that

are

commonly

prescribed

in

"clusters"

for

co-occurring

disorders

may

be

pushed

to

the

top

of

the

list

if

the

patient

is

identified

as

fitting

that

profile

or

if

one

medicine

from

such

a

cluster

is

entered.

Additionally,

search

functionality

could

be

enhanced

through

the

use

of

"sounds

like"

technology,

such

as

Metaphone,

that

allows

users

to

phonetically

spell

medication

names

and

find

them

via

search

even

if

they

do

not

know

the

correct

spelling

On

other

fronts,

efforts

to

classify

RxNorm

data

into

medication

categories

hold

great

promise

for

research,

clinical

decision

support,

and

business

intelligence

purposes,

whereas.

RxNorm

currently

lacks

any

such

built-in

categorization

scheme..

Grouping

medications

into

categories,

such

as

by

linking

to

NDF-RT,

enables

cross-organizational,

cross-population,

cross-provider,

and

crossdiagnostic

comparisons,

among

other

capabilities.

However,

there

is

still

progress

to

be

made

in

this

arena,

particularly

in

achieving

better

coverage/linkage

of

medications

between

RxNorm

and

drug

categorization

schemes

The

final

result

was

searchable

information

for

known

medications

and

over

common

dose

forms

thereof.

This

information

allowed

clinicians

(and

patients)

to

search

for

previously

prescribed

medications

and

assist

with

capturing

accurate

dosing

information

(as

seen

in

figures

and

The

response

time

on

the

medication

auto-complete

search

feature

was

measurable

in

milliseconds

and

generally

imperceptible

to

the

end

user

during

human

factors

testing

(described

in

forthcoming

publications).

Where

the

question

mark

above

is

replaced

by

the

actual

of

the

medication

selected

in

the

search

box.

The

field

is

shown

in

the

popup.

Once

the

user

makes

a

selection

(including

a

dummy

option

for

"unknown"),

and

are

loaded

into

the

appropriate

fields.

The

user

can

still

manually

adjust

the

dosing

information

at

that

point,

which

necessitates

delimiting

the

possible

for

the

selected

medication

for

that

dropdown

field.

RxNorm

data

was

obtained

from

the

NIH/NLM's

UMLS

website

as

part

of

the

comprehensive

UMLS

download

and

loaded

into

Centerstone's

existent

data

warehouse

infrastructure,

running

on

Postgres

via

the

open-source

Extraction

Transformation

Load

(ETL)

tool

Pentaho

Kettle

(version

The

original

version

used

in

development

was

although

is

currently

being

used.

Extracts

of

RxNorm

data

were

made

from

this

UMLS

dataset

and

loaded

into

Centerstone's

EHR

production

database,

running

on

Oracle

This

EHR

is

a

heavily

customized

version

of

the

Qualifacts

CareLogic

system

The

subsequent

activities

were

performed

during

a

complete

re-design

of

the

intake

module

in

the

EHR.

Although

initial

development

was

performed

using

RxNorm

extracts

from

the

UMLS

dataset,

equivalent

(and

more

frequently

updated

-weekly

rather

bi-annually)

RxNormspecific

download

files

can

be

obtained

from

the

UMLS

website

For

live

clinical

use,

the

direct

monthly/weekly

RxNorm

files

would

be

preferred.

For

all

practical

purposes,

the

extraction

of

data

from

either

source

is

equivalent,

except

for

table

names

and

some

slight

variation

in

a

couple

of

column

names

(CUI

RXCUI

and

AUI>>RXAUI),

and

subsequent

technical

details

below

can

be

substituted

for

one

source

or

the

other

(code

for

both

is

available

in

the

appendix).

It

should

be

noted

that

some

of

the

data

described

below

(e.g.,

dose

frequency)

was

derived

from

other

terminologies

such

as

SNOMED

CT

where

RxNorm

was

lacking..

The

nature

of

the

legacy

medication

history

data

in

the

system,

as

well

as

new

data

captured

directly

from

patients,

is

problematic

in

terms

of

quality

and

consistency.

Patients

often

cannot

remember

the

exact

dosage

taken,

let

alone

other

aspects

of

prescriptions

that

RxNorm

dictates

(such

as

dose

units,

dose

form,

and

route

of

administration).

Additionally,

other

requirements

(e.g.,

state,

payer,

accreditation

bodies)

require

only

medication

name

and

dosage

(amount

and

units).

Meaningful

Use

itself

does

not

currently

specify

the

medication

components

to

be

captured

in

medication

history..

Given

these

conditions,

for

purposes

of

this

study

and

the

re-design

process,

we

focused

only

on

capturing

Clinical

Drug

data

(as

defined

by

Richesson

et

al.

-medication

name

and

dosage

(amount

and

units),

segmenting

each

RxNorm

component

into

independent

fields

and

leaving

dose

form/route

(e.g.,

tablet,

capsule,

topical

cream)

for

future

work.

Henceforth,

we

use

dosage

to

refer

to

the

combination

of

dose

amount

and

dose

units

and

common

form

to

refer

to

the

RxNorm

specified

O B O O O O O O B I O O O O O B 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 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 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 I 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 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 B O O O O O O O B I I I 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 B 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 B 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 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 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 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 B 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 B O O O O O O O O O O O O O O O O O O B I 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 B I 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 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 B I O O O O O O O O O O O B I O O O O O O O O O B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B I 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 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 B I 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 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 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 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 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 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 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 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 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 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 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 B 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 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 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 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 B O


Prefetch-Aware Memory Controllers Abstract-Existing DRAM controllers employ rigid, nonadaptive scheduling and buffer management policies when servicing prefetch requests. Some controllers treat prefetches the same as demand requests, and others always prioritize demands over prefetches. However, none of these rigid policies result in the best performance because they do not take into account the usefulness of prefetches. If prefetches are useless, treating prefetches and demands equally can lead to significant performance loss and extra bandwidth consumption. In contrast, if prefetches are useful, prioritizing demands over prefetches can hurt performance by reducing DRAM throughput and delaying the service of useful requests. This paper proposes a new low hardware cost memory controller, called as Prefetch-Aware DRAM Controller (PADC), that aims to maximize the benefit of useful prefetches and minimize the harm caused by useless prefetches. The key idea is to 1) adaptively prioritize between demands and prefetches, and 2) drop useless prefetches to free up memory system resources, based on prefetch accuracy. Our evaluation shows that PADC significantly outperforms previous memory controllers with rigid prefetch handling policies. Across a wide range of multiprogrammed SPEC CPU 2000/2006 workloads, it improves system performance by 8.2 and 9.9 percent on four and eight-core systems while reducing DRAM bandwidth consumption by 10.7 and 9.4 percent, respectively. H IGH-PERFORMANCE memory controllers seek to maximize throughput by exploiting row buffer locality. A modern SDRAM bank contains a row buffer that buffers the data of the last accessed memory row. Therefore, an access to the same row (called row-hit) can be serviced significantly faster than an access to a different row (called row-conflict) [18] . Due to this nonuniform access latency, state-of-the-art memory access scheduling policies such as [47] , [31] , [17] prefer row-hits to row-conflicts to improve DRAM throughput, thereby improving system performance. However, the problem of DRAM access scheduling becomes more challenging when we take prefetch requests into consideration.. Today's microprocessors employ hardware prefetchers to hide long DRAM access latencies. If prefetch requests are accurate and fetch data early enough, prefetching can improve performance. However, even if prefetch accuracy is high, the full benefit of prefetching may not be achieved based on how the DRAM controller schedules the requests. For example, a demand request can delay a prefetch request that could have, otherwise, been serviced very fast in DRAM, e.g., if the prefetch request is a row-hit, while the demand request is a row-conflict. If the prefetch is useful, delaying it by servicing the row-conflict demand request first may not result in the best performance.. In addition, prefetching does not always improve and can sometimes degrade performance due to two reasons. First, useless prefetch requests unnecessarily consume valuable off-chip bandwidth and fetch useless data that might displace useful data blocks in processor caches. Second, prefetch requests contend for the same resources (e.g., memory request buffer entries and memory bus bandwidth) as demand (load/store) requests issued by a processing core. As a result, a prefetch request can delay a demand request, which could lead to performance degradation especially if the prefetch is useless. If the interference between prefetch requests and demand requests is not controlled, system performance can degrade because either demand requests or useful prefetch requests can be significantly delayed.. Existing DRAM scheduling policies take two different approaches as to how to treat prefetch requests with respect to demand requests. Some policies [42] regard a prefetch request to have the same priority as a demand request. As noted above, this policy can significantly delay demand requests and cause performance degradation especially if prefetch requests are not accurate. Other policies [9] , [14] , [7] , [35] , [36] always prioritize demand requests over prefetch requests so that data known-to-be-needed by the program instructions can be serviced earlier. One might think that always prioritizing demand requests over prefetch requests in the memory controller provides the best performance by eliminating the interference of prefetch requests with demand requests. However, such a rigid demand-over-prefetch prioritization policy does not consider the nonuniform access latency of the DRAM system (row-hits versus row-conflicts). A row-hit prefetch request can be serviced much more quickly than a row-conflict demand request. Therefore, servicing the row-hit prefetch request first provides better DRAM throughput and can improve system performance compared to servicing the row-conflict demand request first. Fig. 1 provides supporting data to demonstrate this. This figure shows performance impact of an aggressive stream prefetcher [36] , [39] when used with two different memory scheduling policies for 10 SPEC 2000/2006 benchmarks on a single processor described in Section 5. The vertical axis is retired instructions per cycle (IPC) normalized to the IPC on a processor with no prefetching. One policy, demand-prefetchequal, does not differentiate between demand and prefetch requests. This policy is the same as the First Ready-First Come First Serve (FR-FCFS) policy that prioritizes requests as follows: 1) row-hit requests over all others and 2) older requests over younger requests [31] . As a result, DRAM throughput is maximized. The other policy, demand-first, prioritizes demand requests over prefetch requests. Prefetch requests to a bank are not scheduled until all the demand requests to the same bank are serviced. Within a set of outstanding demand or prefetch requests, the policy uses the same prioritization rules as the FR-FCFS policy. As a result, this policy does not maximize overall DRAM throughput because it prefers row-conflict demand requests over row-hit prefetch requests. 1 The results show that neither of the two policies provides the best performance for all applications. For the leftmost five applications, prioritizing demands over prefetches results in better performance than treating prefetches and demands equally. In these applications, a large fraction (70 percent for demand-prefetch-equal and 59 percent for demand-first) of the generated stream prefetch requests are useless. Therefore, it is important to prioritize demand requests over prefetches. In fact, for art and milc, servicing the demand requests with higher priority is critical to make prefetching effective. Prefetching improves performance of these two applications by 2 and 10 percent, respectively, with the demand-first scheduling policy, whereas it reduces their performance by 14 and 36 percent with the demand-prefetch-equal policy.. On the other hand, for the rightmost five applications, we observe the exact opposite behavior. Equally treating demand and prefetch requests provides significantly higher performance than prioritizing demands over prefetches. In particular for libquantum, the demand-prefetch-equal policy allows the prefetcher to provide 169 percent performance improvement in contrast to the 60 percent performance improvement it provides with the demand-first scheduling policy. This is because prefetch requests in libquantum are very accurate (almost 100 percent of them are useful). Maximizing DRAM throughput by preferring row buffer hits in the DRAM system regardless of whether a memory request is a demand or a prefetch request allows for more efficient bandwidth utilization and improves the timeliness (and the coverage) of prefetches thereby improving system performance. 2 These results show that DRAM scheduling policies with rigid prioritization rules among prefetch and demand requests cannot provide the best performance and may even cause prefetching to degrade performance.. Note that even though the DRAM scheduling policy has a significant impact on performance provided by prefetching, prefetching sometimes degrades performance regardless of the DRAM scheduling policy. For example, galgel, ammp, and xalancbmk suffer significant performance loss with prefetching because a large fraction (69, 94, and 91 percent) of the prefetches are not needed by the program. The negative performance impact of these useless prefetch requests cannot be mitigated solely by a demand-first scheduling policy because useless prefetches 1) occupy memory request buffer entries in the memory controller until they are serviced, 2) occupy DRAM bandwidth while they are being serviced, and 3) cause cache pollution by evicting possibly useful data from the processor caches after they are serviced. As a result, useless prefetches could delay the servicing of demand requests and could result in additional demand requests. In essence, useless prefetch requests can deny service to demand requests because the DRAM controller is not aware of the usefulness of prefetch requests in its memory request buffer. To prevent this, the memory controller should intelligently manage the memory request buffer between prefetch and demand requests.. Our goal in this paper is to design an adaptive DRAM controller that is aware of prefetching. We propose a memory controller that adaptively controls the interference between prefetch and demand requests to improve system performance. Our controller aims to maximize the benefits of useful prefetches and minimize the harm of useless prefetches. To do so, it employs two techniques to manage both memory bandwidth and memory request buffers: based on the runtime behavior (accuracy) of the prefetcher, it 1) adaptively decides whether or not to prioritize demand requests over prefetch requests, and 2) decides whether or not to drop likely-useless prefetches from the memory request buffer.. We evaluate our Prefetch-Aware DRAM Controller on a wide variety of benchmarks and systems, and find that it consistently outperforms previous DRAM controllers that rigidly handle prefetches on both single-core and multicore (two, four, and eight-core) systems. Our controller improves single-core performance by up to 68 percent (on average, 4.3 percent) for the 55 SPEC 2000/2006 benchmarks when compared to a controller that employs the demand-first policy. Our mechanism also improves system performance (i.e., weighted speedup) for 54 SPEC workloads by 8.4 percent on a two-core system, for 32 workloads by 8.2 percent on a 1 . For completeness, we also implemented another policy, prefetch-first, that always prioritizes prefetch requests over demand requests. This policy provides the worst performance (5.8 percent IPC degradation compared to demand-first policy) on all the benchmarks. 2. Improving DRAM throughput improves prefetch coverage by reducing the probability that a useful prefetch is not issued into the memory system because the memory request buffer is full. We explain this in more detail in Section 6.1. To show how our mechanism improves DRAM throughput for useful requests compared to rigid policies, we also analyze row-hit rates for demand and useful prefetch requests with the rigid policies and our mechanism in detail in Section 6.1.2.. four-core system, and for 21 SPEC workloads by 9.9 percent on an eight-core system while also reducing memory bandwidth consumption by 10.0, 10.7, and 9.4 percent for two, four, and eight-core systems, respectively. We show that our controller has low implementation complexity and storage cost, requiring only 4.25 KB of storage in a four-core system.. Contributions. To our knowledge, this is the first paper that comprehensively and adaptively incorporates prefetch awareness into the memory controller's scheduling and request buffer management policies. We make the following contributions:. 1. We show that performance of a prefetcher significantly depends on how prefetch requests are handled by the memory controller with respect to demand requests. Rigid memory scheduling policies that treat prefetches and demands equally or that always prioritize demands can either cause significant losses in system performance or not achieve the best performance for all applications. 2. We propose a low hardware cost memory controller design that dynamically adapts its prioritization policy between demand and prefetch requests based on how accurate the prefetcher is in a given program phase. This mechanism achieves high performance by improving both DRAM throughput and prefetch timeliness/coverage. 3. We propose a simple mechanism that reduces the interference of useless prefetches with demand requests by proactively removing the likely-useless prefetches from the memory request buffer. This mechanism efficiently reduces the buffer, bandwidth, and cache space resources consumed by useless prefetches thereby improving both performance and bandwidth efficiency. 4. We show that the proposed adaptive scheduling and buffer management mechanisms interact positively. Our Prefetch-Aware DRAM Controller (PADC) that comprises both mechanisms significantly improves performance and bandwidth efficiency on both single-core and multicore systems. In addition, our proposal is very effective for a variety of prefetching algorithms including stream, PC-based stride, CZone/Delta Correlation (C/DC), and Markov prefetching. 5. We comprehensively evaluate performance and DRAM bus traffic of PADC on various DRAM and last-level cache configurations. We also compare and incorporate PADC with other mechanisms such as hardware prefetch filtering, feedback directed prefetching, permutation-based page interleaving, and runahead execution. Our results show that PADC not only outperforms but also complements all of these previous performance enhancement mechanisms. This paper shows that existing DRAM controllers that employ rigid, nonadaptive prefetch scheduling and buffer management policies cannot achieve the best performance since they do not take into account the usefulness of prefetch requests. To overcome this limitation, we propose a low hardware cost Prefetch-Aware DRAM Controller, which aims to 1) maximize the benefit of useful prefetches by adaptively prioritizing them and 2) minimize the harm caused by useless prefetches by adaptively deprioritizing and dropping them from the memory request buffers. To this end, PADC dynamically adapts its memory scheduling and buffer management policies based on prefetcher accuracy. Our evaluation shows that PADC significantly improves system performance and bandwidth efficiency on both single-core and multicore systems. We conclude that incorporating awareness of prefetch usefulness into memory controllers is critical to efficiently utilizing valuable memory system resources in current and future systems. Veynu Narasiman received the BS degree in electrical/computer engineering, the BA degree in plan II in 2004, and the MS degree in computer engineering in 2006 from the University of Texas at Austin, where he is currently working toward the PhD degree. His research interests in computer architecture focus on general-purpose graphics processing units (GPGPUs) and high-performance memory systems. As a student, he has received a number of awards including a National Merit Scholarship, the Microelectronics and Computer Development Fellowship, and the NVIDIA PhD Fellowship. He is a student member of the IEEE.. Yale N. Patt received the BS degree in electrical engineering from Northeastern, and the MS and PhD degrees in electrical engineering from Stanford. He is the Ernest Cockrell, Jr., centennial chair in engineering and a professor of electrical and computer engineering at Texas. He continues to thrive on teaching the large (400 students) freshman introductory course in computing and advanced graduate courses in microarchitecture, directing the research of eight PhD students, and consulting in the microprocessor industry. He is the coauthor of Introduction to Computing Systems: from bits and gates to C and beyond, McGraw-Hill (second edition, 2004), his preferred approach to introducing freshmen to computing. He has received a number of awards for his research and teaching, including the IEEE/ACM EckertMauchly Award for his research in microarchitecture and the ACM Karl V. Karlstrom Award for his contributions to education. He is a fellow of the IEEE. More detail about his research can be found at http:// www.ece.utexas.edu/~patt.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. The main contribution of our work beyond previous research is an adaptive way of handling prefetch requests in the memory controller's scheduling and buffer management policies. To our knowledge, none of the previously proposed DRAM controllers adaptively prioritize between prefetch and demand requests nor do they adaptively drop useless prefetch requests based on prefetch usefulness information obtained from the prefetcher. We discuss closely related work in DRAM scheduling, prefetch filtering, and adaptive prefetching.

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 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 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 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 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 B 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 B 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B 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 B 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 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 B O O O O O O O O O O B B O O O O O O B 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 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 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 B 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 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 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 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 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 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 B O O O O O O B 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 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 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 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 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 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 B O O O O O B


Bound on the Jordan type of a generic nilpotent matrix commuting with a given matrix It is well-known that a nilpotent n × n matrix B is determined up to conjugacy by a partition of n formed by the sizes of the Jordan blocks of B.We call this partition the Jordan type of B. We obtain partial results on the following problem: for any partition P of n describe the type Q(P ) of a generic nilpotent matrix commuting with a given nilpotent matrix of type P .A conjectural description for Q(P ) was given by P. Oblak and restated by L. Khatami. In this paper we prove "half" of this conjecture by showing that this conjectural type is less than or equal to Q(P ) in the dominance order on partitions. It is well known that the nilpotent commutator N B of a Jordan block matrix B whose eigenvalues are in a base field k, is a direct sum of the nilpotent commutators corresponding to the generalized eigenspaces of B [Ger, p.338] . The particular eigenvalue in each plays no further role, so henceforth we assume that B is nilpotent.. We fix an n-dimensional vector space V over an infinite field k, and an n × n 06A11, 15A30, 16S50. keywords: Jordan type, nilpotent matrix, commutator, partition.. 2 R. Basili arXiv:1202.3369, revised in June 2012.. 2 nilpotent Jordan block matrix B = J P ∈ Mat n (k) having t Jordan blocks of sizes p i. given by the partition P n, P = (p 1 , . . . , p t ), p 1 ≥ p 2 ≥ · · · ≥ p t . Consider the centralizer C B ⊂ Mat n (k) ∼ = End k (V ), which is the set of n × n matrices with entries in k that commute with B, and the subvariety N B comprised of those matrices in C B that are nilpotent. Each element A of N B is in the conjugacy class of a Jordan block matrix J P A of partition P A n. We term the partition P A the Jordan type of A. It is well known that N B is an irreducible algebraic variety [Bas, Lemma 2.3] , [BI, Lemma 1.5] . Thus, there is a unique Jordan type Q(P ) = P A associated to a generic matrix A ∈ N B -for A in a suitable Zariski dense open subset of N B . And Q(P ). is greater in the dominance order (1.4) than any other Jordan type occurring for elements of N B . Of course, a generic A ∈ N B is usually not itself a Jordan block matrix.. Question 1.1. What is Q(P )? Determine Q(P ) algorithmically from P .. When P is almost rectangular -the maximum part of P minus the smallest part is at most one -then it is easy to see that Q(P ) = (n), a single block. R. Basili showed that Q(P ) has r P parts, where r P is the minimum number of almost rectangular subpartitions P 1 , . . . , P r needed for a decomposition P = P 1 ∪ . . . ∪ P r , where by P 1 ∪ P 2 we mean the partition whose parts are the concatenation of those of P 1 and P 2 ( [Bas, Proposition 2.4 ], see also [BIK, Theorem 2.17] ).. Attached to the partition P is a maximal subalgebra U B ⊂ N B (Section 2.1).. A key combinatorial object attached to the partition P and defined from U B is the poset D P , which has n elements corresponding to a certain basis B = {b 1 , . . . , b n } of V . We regard these as being arranged in t rows: each row corresponds to a part p i of P : the i-th row is comprised of the basis of a B-invariant subspace of V isomorphic to k[B]/B p i , i ∈ {1, . . . , t} (see Definition 2.3 below). This poset was defined by P. Oblak as the digraph associated to the maximal subalgebra U B of N B :. for b, b ∈ B set b ≤ b in D P if A b,b = 0 for A generic in U B , when A is expressed in the basis B [Obl1, BIK] . 3 Furthermore, any matrix A ∈ N B is conjugate by a matrix in the centralizer C B to one in U B , so we may restrict to U B in determining Q(P ) [Bas, TuAi, BIK] .. P. Oblak [Obl1] for char k = 0 and subsequently the first author and R. Basili for k algebraically closed (unpublished) determined the index -largest part -i(Q(P )). of Q(P ) in terms of the poset D P . Let P = (. . . , i n i , . . .) where i has multiplicity n i .. A U -chain of D P is a maximal chain whose vertices are comprised of those in the rows of D P corresponding to the parts of an almost rectangular (AR) subpartition P ⊂ P , union two hooks -one from the source and the other to the sink of D P (see Definition 2.7). We associate to an AR subpartition P = (a na , (a − 1) n a−1 ) of P the invariant ob(P ) which is the length -number of vertices -of the unique U -chain U a containing P :. ob(P ) =| U a |= an a + (a − 1)n a−1 + c>a 2n c .. (1.1). 1.1 A New Lower Bound for Q(P ).. C. Greene, E. R. Gansner, and S. Poljak associate to any finite poset D a partition λ(D) defined from its chains, as follows [Gre, Gans, Pol, BrFo] . One can construct similarly to λ(D P ) a possibly different partition λ U (D P ) using s-U -chains in place of arbitrary chains (Definitions 2.10, 2.14). P. Oblak had conjectured that Q(P ) could be obtained by a recursive process, first picking a maximumlength chain C 1 in D P , then a maximum length chain C 2 in a new, smaller poset D P where the partition P = P − C 1 is defined through removing C 1 from D P and counting the vertices left in each row (warning: D P does not have the induced partial order from D P ). And so on for r P steps. Then Q(P ) is conjecturally the set of lengths of the chains [BKO] . The second author has shown that any such Oblak process O yields a partition Ob O (P ) = (|C 1 |, |C 2 |, . . . |C r |) satisfying Ob O (P ) = λ U (D P ) [Kha1, §2] . Thus, the Oblak conjecture for Q(P ) is equivalent to a positive answer. Recall the dominance or orbit closure order on the set of partitions of n [Ger] .. Let P = (p 1 , . . . , p t ) with p 1 ≥ · · · ≥ p t and P = (p 1 , . . . , p t ) with p 1 ≥ · · · ≥ p t be partitions of n. Then. Our main result is Theorem 3.9. Let k be an infinite field, then. To prove this, we first work over a polynomial ring R over k and define in (2.18) a nilpotent matrix A R ∈ Mat R (n) ∼ = End R (V ⊗ R) which commutes with B. We then show that P A R ≥ λ U (D P ), when we consider A R as an element of Mat F (n), with F the quotient field of R (Corollary 3.8).. To prove that P A R ≥ λ U (D P ), we show in Theorem 3.7, that for every s ∈ {1, . . . , r P } there exist. Indeed, together with a well-known property of nilpotent matrices (Lemma 3.1), this establishes the desired inequality.. In turn, the proof of Theorem 3.7 boils down to showing that for a maximal by an analysis of the sets of chains from the initial vertices v i to all the vertices covered by U A . A final step in the proof of (1.5) is to specialize to k (Theorem 3.9).. We next state some further results and questions concerning Q(P ). In section 2. we define the poset D P , the multi-U -chains, the homomorphism π A and show some properties we will need. In section 3 we show Theorem 3.9. We first give a simple example where P is not AR to illustrate naively the problem of determining Q(P ).. Example 1.4. Let P = (4, 2, 1). Since P = (4) ∪ (2, 1) is a minimal decomposition into almost rectangular subpartitions, we have r P = 2, and we shall see that Q(P ) = (5, 2). Here the basis B = {a, b, c, d, e, f, g} with Ba = b, Bb = c, Bc = d, Bd = 0, Be = f, Bf = 0, and Bg = 0. Since A and B commute, A ∈ U B is determined by its action on the B-cyclic vectors {a, e, g} of V . To obtain a general enough A so that P A = (5, 2) = Q(P ) we may take (Figure 1 ). Figure 1: P = (4, 2, 1), Q(P ) = (5, 2) .. In Example 3.14 we apply the proof method of this paper to P = (4, 2, 1): the endomorphism A above is obtained by substituting 1 for each of the variables of R in the matrix A R of (3.9).. In Examples 2.15 and 2.16 below we determine λ U (P ) for P = (4, 2, 2, 1) and P = (5, 4, 3, 3, 2, 1). By Corollary 3.12, Q(P ) = λ U (P ) for these P , since r P ≤ 3.

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 B O O O O O O O O O O O O O O B O B I 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 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 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 B I B I B 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 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 B O O O O O O B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B 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 B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O 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


A Parallel Framework for In-Memory Construction of Term-Partitioned Inverted Indexes With the advances in cloud computing and huge RAMs provided by 64-bit architectures, it is possible to tackle large problems using memory-based solutions. Construction of term-based, partitioned, parallel inverted indexes is a communication intensive task and suitable for memory-based modeling. In this paper, we provide an efficient parallel framework for in-memory construction of term-based partitioned, inverted indexes. We show that, by utilizing an efficient bucketing scheme, we can eliminate the need for the generation of a global vocabulary. We propose and investigate assignment schemes that can reduce the communication overheads while minimizing the storage and final query processing imbalance. We also present a study on how communication among processors should be carried out with limited communication memory in order to reduce the total inversion time. We present several different communication-memory organizations and discuss their advantages and shortcomings. The conducted experiments indicate promising results. The evolution of communication technologies in recent years gave rise to a rapid increase in the amount of textual digital information and the demand to search over this type of information. One of the largest industries of our era, the searching industry, has flourished around these demands.. Inverted indexes, due to their superior performance in answering phrase queries [1] , are the most commonly used data structures in Web search systems. An inverted index consists of two parts: a vocabulary and inverted lists. The vocabulary contains the collection of distinct terms, which are composed of character strings (words) that occur in the documents of the collection. For each term in the vocabulary, there is an associated inverted list, or posting list. The inverted list for a term is a list of postings, where a posting contains an identifier for a document that contains that term. Depending on the granularity of information, the frequency and the exact term positions may also be stored in the postings.. Inverted index data structure is quite simple, yet Web-scale generation of a global inverted index is very costly due to the size, distributed nature and growth/change rate of the Web data [2] . Fast and efficient index construction schemes are required to provide fresh and up-to-date information to users. Furthermore, since the data to be indexed is crawled and stored by distributed or parallel systems (due to performance and scalability reasons), parallel index construction techniques are essential.. There are two major partitioning schemes used in distributing the inverted index on parallel systems: document-based and term-based partitioning. In document-based partitioning, the documents are assigned to index servers and all the postings related with the assigned documents are stored in a particular index server. In term-based partitioning, each term in the vocabulary and the related inverted lists are assigned to an index server.. Almost all of the major search engines use document-based partitioning due to the ease in parallel index construction of document-based, partitioned, inverted indexes. Term-based partitioning, on the other hand, has advantages that can be exploited for better query processing [3] . In this study, we propose an efficient parallel index construction framework that can be used for generating term-based partitioned, inverted presented in [13] achieves storage balance among processors, it does not consider minimizing the communication loads of the processors. In [13] , it is also assumed that it is possible for the inverted indexes to be incrementally updated over time, and specialized data structures for minimizing the index update times are proposed. The cost of the inversion process is also emphasized, and four different index inversion methods are presented. In [14] , the authors again start from a document partitioned collection and use a software-pipelined architecture to invert document collections. The collection is divided into runs, and for each run, documents are parsed, inverted, sorted and flushed into disk in a pipelined fashion. In [3] , the authors propose a load balancing strategy in a term-partitioned inverted index on a pipelined query processing architecture [15] . In [3] , both replication of inverted lists and a query statistics-based assignment scheme is presented, yielding up to 30% net query throughput improvement. In this paper, a memory-based, term-partitioned, parallel inverted, index construction framework was examined. Several problems were identified and improvements were proposed for a parallel index inversion framework.. First, we proposed a termBucket-to-processor assignment scheme. This scheme minimizes the communication cost of local vocabularies among processors and distributes the final query processing and storage loads among all processors, allowing a finer grained parallelism. We also showed that, by using a termBucket-to-processor assignment scheme, the need to create a global vocabulary can be eliminated and all associated communications can be prevented.. Secondly, we developed and investigated several heuristics for generating a term-to-processor assignment. The results of our experiments show that, compared with a baseline RA scheme, our proposed methods improved the parallel inversion times significantly while providing reasonable final query processing and storage balances.. Thirdly, we presented and explored four different communication-memory organization schemes in order to reduce the communication time required. We also presented methods to avoid deadlocks and network congestion and commented on memory utilization of the overall system. Our results show that splitting the communication-memory in 2 × (K − 1) parts yields the best results.. Simulations and actual parallel inversion times are presented in order to give insight on our improvements. According to the observed results, we recommend the use of the E 2 A scheme for termBucket-to-processor assignment, and the KsKr scheme for communication-memory organization.. This work can be extended in several ways. First, the framework used in this work does not consider the effect of the bucket processing order. For example, processing buckets in decreasing size order might present better results both in respect of final storage balance and communication costs. Secondly, the number of buckets is assumed to be fixed throughout this work. The scaling of our framework using different numbers of buckets can also be considered.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 O O O O O O O O O O O O O O O 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


A hybrid one-then-two stage algorithm for computationally expensive electromagnetic design optimization Purpose -The purpose of this paper is to propose a surrogate model-assisted optimization algorithm which effectively searches for the optimum at the earliest opportunity, avoiding the need for a large initial experimental design, which may be wasteful. Design/methodology/approach -The methodologies of two-stage and one-stage selection of points are combined for the first time. After creating a small experimental design, a one-stage Kriging algorithm is used to search for the optimum for a fixed number of iterations. If it fails to locate the optimum, the points it samples are then used in lieu of a traditional experimental design to initialize a two-stage algorithm. Findings -The proposed approach was tested on a mathematical test function. It was found that the optimum could be located, without necessarily constructing an accurate surrogate model first. The algorithm performed well on an electromagnetic design problem, outperforming both a random search and a genetic algorithm, in significantly fewer iterations. The results suggest a new interpretation of surrogate models -merely as tools for constructing a utility function to locate the optimum of an unknown function, as opposed to actual approximations of the unknown function. Research limitations/implications -The research was carried out on unconstrained problems only. The findings have implications for modern experimental designs, as the proposed algorithm can often locate the optimum without necessarily constructing an accurate surrogate model. Originality/value -The two paradigms of one-stage and two-stage selection of points in surrogate-model assisted optimization are combined for the first time. Also, it is believed that this is the first time that the methodology of one-stage optimization has been used in optimal electromagnetic design. In Jones (2001) , surrogate-model assisted optimization algorithms are categorized into "two-stage" and "one-stage" varieties. At each iteration of a two-stage algorithm, a surrogate model is constructed from the observed data (the first stage), and then this model is used to determine where to sample next (the second stage) . Several different so-called utility functions (also referred to as infill sampling criteria) exist which are used to choose where to sample in the second stage, based on the surrogate model constructed in the first stage, (Jones, 2001; Jones et al., 1998; Sasena et al., 2002) . The points which are sampled are then used in the reconstruction of the surrogate model during the first stage of the next iteration.. One-stage algorithms do not determine where to evaluate next based only on the observed data. In particular, they do not fit surrogate models to the observed data only. Instead, at each iteration, they choose where to sample next by determining the credibility of hypotheses made about the location of the global minimum. This is done by specifying a measure of credibility for a surrogate model (which may be viewed intuitively as being related to its smoothness, with smoother models being deemed more plausible), and then determining the credibility of surrogate models which pass through the observed data and each of the hypothesized optima (Gutmann, 2001) . The point chosen to be sampled is the hypothesized optimum which has the most credible surrogate model passing through it.. The two-stage and one-stage approaches each have their own individual drawbacks. Two-stage approaches suffer from the fact that the surrogate model constructed in the first stage of an iteration may not be very accurate, resulting in a poor choice of point in the second stage. In particular, convergence to a false optimum (an optimum of the surrogate model, but not of the true function) can happen if uncertainty considerations are not made. Related to this is the issue of when to actually begin searching for the optimum. Before the iterations of the algorithm begin proper, an initial surrogate model is built using an experimental design, which is usually constructed to be space-filling in design variable space. However, it is not obvious how large this initial experimental design should be: if too few points are used, then the initial surrogate model may not be very accurate; conversely, if too many points are used, then evaluations will be wasted (Hawe and Sykulski, 2007) .. One-stage methods suffer in that determining the credibility of a hypothesis is itself computationally expensive. For each hypothesis, a surrogate model must be constructed through the observed points and hypothesized point, in such a way that a measure of its credibility is maximized. This itself is an optimization problem, which increases in computational cost as the number of sampled points increases.. In this paper, a hybrid one-then-two stage surrogate model-assisted algorithm is proposed, which aims to overcome the shortcomings of each type of algorithm. In particular:. . the number of points chosen to be space-filling in design variable space (with disregard to their objective function values) is very small in size (thereby reducing the risk of wasteful evaluations);. . the one-stage algorithm is not used when the number of examples sampled exceeds a certain threshold (thereby keeping computational effort low); and . the two stage optimization algorithm is not used with a surrogate model based on a small number of points (i.e. the surrogate model used during the two-stage selection of points should be of a reasonable accuracy).. The method used to construct the surrogate model is Kriging, which is growing in popularity in the optimization of electromagnetic devices (Lebensztajn et al., 2004) . For full details on Kriging, the reader is referred to Santner et al. (2003) An algorithm has been proposed which combines for the first time the techniques of two-stage and one-stage selection of points in surrogate model-assisted optimization. Furthermore, it is believed that this is the first time a one-stage method has been used in electromagnetic design optimization. It was found that the proposed method worked well in locating the minimum of a difficult test function, without even constructing an accurate approximation to it. This suggests that surrogate models need not be accurate approximations to the true function in order to locate the minimum, provided they are interpreted and used in an appropriate manner. The algorithm was applied to an electromagnetic design problem, and was found to outperform both a random search (of 100 iterations in length) in just 14 iterations, and a genetic algorithm (also of 100 iterations in length), in 60 iterations.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 case of sculpting atmospheres: towards design principles for expressive tangible interaction in control of ambient systems Abstract According to the vision of Ambient Intelligence, technology will seamlessly merge into people's everyday activities and environments. A challenge facing designers of such systems is to create interfaces that fit in people's everyday contexts and incorporate the values of daily life. This paper focuses on tangible expressive interaction as one possible approach towards linking everyday experiences to intuitive forms of interaction and presents a number of principles for expressive interaction design in this field. A case study of a tangible expressive interface to control a living room atmosphere projection system (orchestrating living room lighting, audio and video-art) is presented to illustrate and reflect upon the design principles. Furthermore, the case study describes possible techniques towards integrating the design principles into a design method. Two emerging trends in interaction design, common to home ambient system control, point towards new opportunities for the design of tangible interfaces, namely, the shift from technology use to technology presence and the transition from task-oriented to experience-driven design.

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 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 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


A Classification Reliability Driven Reject Rule for Multi-Expert Systems In this paper we propose a reject rule applicable to a Multi-Expert System (MES). The rule is adaptive to the given domain and allows the achievement of the best trade-off between reject and error rates as a function of the costs attributed to errors and rejects in the considered application. The results of the method are particularly effective since the method does not rely on particular statistical assumptions, as other reject rules. An experimental analysis carried out on publicly available databases is reported together with a comparison with other methods present in the literature. Multi-Expert Systems (MES) have been recently employed for solving complex pattern recognition problems. The idea is that the recognition performance attainable by combining a set of experts should be improved by taking advantage of the strengths of the single experts, without being affected by their weaknesses. To this aim, the MES should be able to combine the decisions of its composing experts in an effective and reliable way, particularly when such decisions are conflicting. To this concern, up to now, different rules for acting the combination have been proposed in the literature. 1, 14, 17, 27 However, the decision taken by the MES could be highly risky, especially in case of a wide disagreement among the experts, and thus it would be useful to evaluate the convenience of rejecting the input sample instead of running the risk of misclassifying it. The problem of defining a reject option by considering the requirements of the given application domain is a general topic that until now has 2 C. Sansone, M. Vento & F. Tortorella concerned mainly single classifiers. With regards to this case, the problem of defining an optimal reject option has been tackled by Chow in Refs. 5 and 6. The rationale of Chow's approach relies on the exact knowledge of a posteriori probabilities for each sample to be recognized. Under this hypothesis, Chow's rule is optimal since it minimizes the expected Bayesian risk. Recently, the class selective rejection rule, 12 has been defined within the same statistical framework. This rule does not reject the sample at all, but only from those classes that are most unlikely to issue the pattern. It is optimal in the sense that it minimizes the error rate for a given average number of classes. Like Chow's approach, the class selective rejection rule requires the knowledge of a posteriori probability for each class.. Anyway, the applicability of these methods is limited by the underlying hypothesis; in fact, the evaluation of a posteriori probability is generally difficult to be carried out for most of the classification paradigms and in many real applications: the statistical assumptions which make possible a correct estimation of the post probabilities, do not hold in the general case.. As concerns the problem of introducing a reject option, a MES can be seen as a traditional classifier: on the basis of the classification decisions coming from its composing experts, it attributes the sample to the most likely class according to the adopted combining rule. So, the applicability of the previous approaches to a MES requires the estimation of its a posteriori probabilities. These can be simply evaluated, once the post-probabilities of each single expert are known, only in the case of statistical independence of the experts themselves. The hypothesis of the independence of the experts can be verified to some extent with few experts, but a certain degree of correlation is unavoidable when the number of experts grows (as required for building MES with good performance), even if all the experts are built up by considering different features, description and classification paradigms. In the general case, the computation of the post-probabilities requires the knowledge of high order statistics defined on the basis of joint probability densities which would be very difficult to evaluate. Some methods have been proposed which try to tackle this problem (e.g. see Ref. 16 ), but they require huge training sets, often not available, and consequently imply an unacceptable computational cost.. As a consequence of these considerations, a systematic approach to the definition of a reject option specifically tailored for MES architectures has not yet been introduced. The proposals present in the literature only concern heuristic reject criteria suitable for a given combining rule 2, 15, 27 or MES architectures in which the reject option is applied to the single experts. 22, 23 In particular, Ref. 22 proposes a two-stage combining scheme in which the samples rejected by the first expert are submitted for classification to the second one; in Ref. 23 a reject option is applied to each single expert, while the reject rule for the whole MES simply states that the MES rejects only in cases when all experts reject. Moreover, in all these papers there are no criteria for determining the optimal values of the reject thresholds on the basis of the domain requirements.. Classification Reliability Driven Reject Rule for MES 3 In this paper we propose a method for introducing a reject option in a MES architecture able to optimize the error/reject trade-off by taking into account the particular application requirements, represented through costs attributed to errors and rejects. It is applicable to the case in which such costs depend on the actual and predicted class and it does not require that the MES outputs the post-probabilities for the classes to be recognized, as needed by the reject rules presented above. In particular, the decision taken by the MES is accepted or rejected by considering the reliability of each classification act, estimated from the output of the MES.. Some preliminary issues about our approach have been discussed in previous papers. In particular, Ref. 7 introduces the general problem of pointing out the situations generating unreliable classification decisions. Two indices measuring the reliability of the classification act are proposed in the case of a single neural classifier (Multi-Layer Perceptron) and used to define a two-stage reject rule. The approach is applied to other popular neural classification paradigms in Ref. 10 , namely the Learning Vector Quantization and the Probabilistic Neural Network. In Ref. 11 the approach is further extended to a Multi-Expert System. Preliminary results are given with reference to a MES adopting the Bayesian Combining rule.. The approaches proposed up to now were designed with reference to a particular classification system (either single classifier or MES) and the costs were considered uniform over the classes. In the present paper the approach is generalized, by removing all these assumptions: no hypothesis is made on the structure of the considered Multiple Expert System and the error and reject costs depend on the class. In this way, the method can be also applied to those application domains, where the consequences of different errors are not equivalent since they depend on the particular class.. The paper is organized as follows: in the next section, the rationale of the approach is reviewed and the method, generalized and further extended to the case in which the costs of errors and rejects depend on the predicted and actual classes, is presented. In Sec. 3, the method is compared with the classification and reject rules proposed by Chow. Finally, in Sec. 4 a detailed experimental analysis on publicly available databases is reported. In this paper a reject rule devised for Multi-Expert Systems has been proposed. Unlike other known reject rules, it does not rely on particular statistical assump- tions, but on the direct evaluation of the reliability associated to each classification act. The rule is able to achieve the best trade-off between reject rate and error rate since it is adaptive to the requirements of the application in which it is used. An experimental comparison with the MRC rule and the Chow's rule has been accomplished on public data sets. The results obtained with three different combination rules confirm the effectiveness of our approach.

O B B 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 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 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 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 B 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 B B 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 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 B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


On the fixed parameter complexity of graph enumeration problems definable in monadic second-order logic We discuss the parametrized complexity of counting and evaluation problems on graphs where the range of counting is deÿnable in monadic second-order logic (MSOL). We show that for bounded tree-width these problems are solvable in polynomial time. The same holds for bounded clique width in the cases, where the decomposition, which establishes the bound on the clique-width, can be computed in polynomial time and for problems expressible by monadic second-order formulas without edge set quantiÿcation. Such quantiÿcations are allowed in the case of graphs with bounded tree-width. As applications we discuss in detail how this a ects the parametrized complexity of the permanent and the hamiltonian of a matrix, and more generally, various generating functions of MSOL deÿnable graph properties. Finally, our results are also applicable to SAT and ]SAT . ? 2001 Elsevier Science B.V. All rights reserved.Keywords: Fixed parameter complexity; Combinatorial enumerationIn this paper we study the complexity of counting or enumeration 4 functions over graphs which are deÿnable in fragments of second order logic (SOL). We also look at evaluation functions which generalize the counting functions in as much as they allow us to compute the total weight of the solutions rather than just counting their number. Special cases of evaluation functions are the permanent and the hamiltonian

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 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


Power Algorithms for Inverting Laplace Transforms T his paper investigates ways to create algorithms to invert Laplace transforms numerically within a unified framework proposed by Abate and Whitt (2006) . That framework approximates the desired function value by a finite linear combination of transform values, depending on parameters called weights and nodes, which are initially left unspecified. Alternative parameter sets, and thus algorithms, are generated and evaluated here by considering power test functions. Real weights for a real-variable power algorithm are found for specified real powers and positive real nodes by solving a system of linear equations involving a generalized Vandermonde matrix, using Mathematica. The resulting power algorithms are shown to be effective, with the parameter choice being tunable to the transform being inverted. The powers can be advantageously chosen from series expansions of the transform. Experiments show that the power algorithms are robust in the nodes; it suffices to use the first n positive integers. The power test functions also provide a useful way to evaluate the performance of other algorithms. In Section 2 we developed new real-variable power inversion algorithms within the unified framework (3) proposed by Abate and Whitt (2006) . The algorithm for constructing power inversion algorithms is summarized in Figure 1 . The algorithm is created by solving the linear system (9), involving the generalized Vandermonde matrix A in (10) to obtain the weights. For given nodes and weights, the algorithm itself is simply the sum (3), typically involving only n = 30 terms, but high computer precision is required, e.g., 1 5n. In Section 3 we showed how the powers can be advantageously chosen starting from a series expansion of the transform, as in (14). In Sections 3 and 4 we developed an effective default power set * , displayed in (16), and an effective default node set * ≡ 1 2 n . The default power algorithm behaves about the same as the Gaver-Stehfest algorithm, providing significant improvement for small t, but performing slightly worse for large t.. In Section 4 we showed that the power algorithm is robust to changes in the positive real node set, provided that the linear system is re-solved to get new weights. In Section 5 we discussed accuracy and precision requirements of the power algorithms.. In Section 6 we discussed the original Zakian ( ) algorithm, which served as motivation for the unified framework. We observed that can be regarded as a special power algorithm, using only integer powers and complex nodes and weights. The nonlinear system of 2n equations in 2n unknowns (the n nodes and n weights) can be efficiently solved by Padé approximation, which is easily carried out via Mathematica. We showed that has inconsistent performance, performing spectacularly well for smooth functions, but poorly for nonsmooth functions.. In Section 7 we showed that the power test functions can be used to evaluate the performance of other algorithms within the unified framework (3). Consistent with experience, this scoring shows the ranking: Talbot ( > Euler > Gaver-Stehfest ) . That is confirmed by detailed inversions of several transforms by all the algorithms in the Online Supplement. In Section 8 we discussed how to estimate the error in numerical inversion calculations. In Section 9 we mentioned two possible extensions: (i) gamma test functions and (ii) complex-variable power algorithms, where the function f , the node vector or the weight vector can be complex-valued.

B I 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 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 B I 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 B I 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 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 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 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 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 B I O O O O O O O O O O O O O O O