From

Optimal

Limited

To

Unlimited

Supply

Auctions

Jason

D.

Hartline

Microsoft

Research

La

Avenida)

Mountain

View,

CA

hartline@microsoft.com

Robert

McGrew

Computer

Science

Department

Stanford

University

Stanford,

CA

bmcgrew@stanford.edu

ABSTRACT

We

investigate

the

class

of

single-round,

sealed-bid

auctions

for

a

set

of

identical

items

to

bidders

who

each

desire

one

unit.

We

adopt

the

worst-case

competitive

framework

defined

by

that

compares

the

profit

of

an

auction

to

that

of

an

optimal

single-price

sale

of

least

two

items.

In

this

paper,

we

first

derive

an

optimal

auction

for

three

items,

answering

an

open

question

from

Second,

we

show

that

the

form

of

this

auction

is

independent

of

the

competitive

framework

used.

Third,

we

propose

a

schema

for

converting

a

given

limited-supply

auction

into

an

unlimited

supply

auction.

Applying

this

technique

to

our

optimal

auction

for

three

items,

we

achieve

an

auction

with

a

competitive

ratio

of

which

improves

upon

the

previously

best-known

competitive

ratio

of

from

Finally,

we

generalize

a

result

from

and

extend

our

understanding

of

the

nature

of

the

optimal

competitive

auction

by

showing

that

the

optimal

competitive

auction

occasionally

offers

prices

that

are

higher

than

all

bid

values.

Categories

and

Subject

Descriptors

[Analysis

of

Algorithms

and

Problem

Complexity]:

Nonnumerical

Algorithms

and

Problems;

[Social

and

Behavioral

Sciences]:

Economics

General

Terms

Algorithms,

Economics,

Theory

INTRODUCTION

The

research

area

of

optimal

mechanism

design

looks

at

designing

a

mechanism

to

produce

the

most

desirable

outcome

for

the

entity

running

the

mechanism.

This

problem

is

well

studied

for

the

auction

design

problem

where

the

optimal

mechanism

is

the

one

that

brings

the

seller

the

most

profit.

Here,

the

classical

approach

is

to

design

such

a

mechanism

given

the

prior

distribution

from

which

the

bidders"

preferences

are

drawn

(See

e.g.,

Recently

Goldberg

et

al.

introduced

the

use

of

worst-case

competitive

analysis

(See

e.g.,

to

analyze

the

performance

of

auctions

that

have

no

knowledge

of

the

prior

distribution.

The

goal

of

such

work

is

to

design

an

auction

that

achieves

a

large

constant

fraction

of

the

profit

attainable

by

an

optimal

mechanism

that

knows

the

prior

distribution

in

advance.

Positive

results

in

this

direction

are

fueled

by

the

observation

that

in

auctions

for

a

number

of

identical

units,

much

of

the

distribution

from

which

the

bidders

are

drawn

can

be

deduced

on

the

fly

by

the

auction

as

it

is

being

run

The

performance

of

an

auction

in

such

a

worst-case

competitive

analysis

is

measured

by

its

competitive

ratio,

the

ratio

between

a

benchmark

performance

and

the

auction"s

performance

on

the

input

distribution

that

maximizes

this

ratio.

The

holy

grail

of

the

worstcase

competitive

analysis

of

auctions

is

the

auction

that

achieves

the

optimal

competitive

ratio

(as

small

as

possible).

Since

this

search

has

led

to

improved

understanding

of

the

nature

of

the

optimal

auction,

the

techniques

for

on-the-fly

pricing

in

these

scenarios,

and

the

competitive

ratio

of

the

optimal

auction

In

this

paper

we

continue

this

line

of

research

by

improving

in

all

of

these

directions.

Furthermore,

we

give

evidence

corroborating

the

conjecture

that

the

form

of

the

optimal

auction

is

independent

of

the

benchmark

used

in

the

auction"s

competitive

analysis.

This

result

further

validates

the

use

of

competitive

analysis

in

gauging

auction

performance.

We

consider

the

single

item,

multi-unit,

unit-demand

auction

problem.

In

such

an

auction

there

are

many

units

of

a

single

item

available

for

sale

to

bidders

who

each

desire

only

one

unit.

Each

bidder

has

a

valuation

representing

how

much

the

item

is

worth

to

him.

The

auction

is

performed

by

soliciting

a

sealed

bid

from

each

of

the

bidders

and

deciding

on

the

allocation

of

units

to

bidders

and

the

prices

to

be

paid

by

the

bidders.

The

bidders

are

assumed

to

bid

so

as

to

maximize

their

personal

utility,

the

difference

between

their

valuation

and

the

price

they

pay.

To

handle

the

problem

of

designing

and

analyzing

auctions

where

bidders

may

falsely

declare

their

valuations

to

get

a

better

deal,

we

will

adopt

the

solution

concept

of

truthful

mechanism

design

(see,

e.g.,

In

a

truthful

auction,

revealing

one"s

true

valuation

as

one"s

bid

is

an

optimal

strategy

for

each

bidder

regardless

of

the

bids

of

the

other

bidders.

In

this

paper,

we

will

restrict

our

attention

to

truthful

(a.k.a.,

incentive

compatible

or

strategyproof)

auctions.

A

particularly

interesting

special

case

of

the

auction

problem

is

the

unlimited

supply

case.

In

this

case

the

number

of

units

for

sale

is

at

least

the

number

of

bidders

in

the

auction.

This

is

natural

for

the

sale

of

digital

goods

where

there

is

negligible

cost

for

duplicating

and

distributing

the

good.

Pay-per-view

television

and

downloadable

audio

files

are

examples

of

such

goods.

The

competitive

framework

introduced

in

and

further

refined

in

uses

the

profit

of

the

optimal

omniscient

single

priced

mechanism

that

sells

at

least

two

units

as

the

benchmark

for

competitive

analysis.

The

assumption

that

two

or

more

units

are

sold

is

necessary

because

in

the

worst

case

it

is

impossible

to

obtain

a

constant

fraction

of

the

profit

of

the

optimal

mechanism

when

it

sells

only

one

unit

In

this

framework

for

competitive

analysis,

an

auction

is

said

to

be

β-competitive

if

it

achieves

a

profit

that

is

within

a

factor

of

β

of

the

benchmark

profit

on

every

input.

The

optimal

auction

is

the

one

which

is

β-competitive

with

the

minimum

value

of

β.

Previous

to

this

work,

the

best

known

auction

for

the

unlimited

supply

case

had

a

competitive

ratio

of

and

the

best

lower

bound

known

was

For

the

limited

supply

case,

auctions

can

achieve

substantially

better

competitive

ratios.

When

there

are

only

two

units

for

sale,

the

optimal

auction

gives

a

competitive

ratio

of

which

matches

the

lower

bound

for

two

units.

When

there

are

three

units

for

sale,

the

best

previously

known

auction

had

a

competitive

ratio

of

compared

with

a

lower

bound

of

The

results

of

this

paper

are

as

follows:

We

give

the

auction

for

three

units

that

is

optimally

competitive

against

the

profit

of

the

omniscient

single

priced

mechanism

that

sells

at

least

two

units.

This

auction

achieves

a

competitive

ratio

of

matching

the

lower

bound

from

(Section

We

show

that

the

form

of

the

optimal

auction

is

independent

of

the

benchmark

used

in

competitive

analysis.

In

doing

so,

we

give

an

optimal

three

bidder

auction

for

generalized

benchmarks

(Section

We

give

a

general

technique

for

converting

a

limited

supply

auction

into

an

unlimited

supply

auction

where

it

is

possible

to

use

the

competitive

ratio

of

the

limited

supply

auction

to

obtain

a

bound

on

the

competitive

ratio

of

the

unlimited

supply

auction.

We

refer

to

auctions

derived

from

this

framework

as

aggregation

auctions

(Section

We

improve

on

the

best

known

competitive

ratio

by

proving

that

the

aggregation

auction

constructed

from

our

optimal

three-unit

auction

is

(Section

Assuming

that

the

conjecture

that

the

optimal

-unit

auction

has

a

competitive

ratio

that

matches

the

lower

bound

proved

in

we

show

that

this

optimal

auction

for

on

some

inputs

will

occasionally

offer

prices

that

are

higher

than

any

bid

in

that

input

(Section

For

the

three-unit

case

where

we

have

shown

that

the

lower

bound

of

is

tight,

this

observation

led

to

our

construction

of

the

optimal

three-unit

auction.

DEFINITIONS

AND

BACKGROUND

We

consider

single-round,

sealed-bid

auctions

for

a

set

of

identical

units

of

an

item

to

bidders

who

each

desire

one

unit.

As

mentioned

in

the

introduction,

we

adopt

the

game-theoretic

solution

concept

of

truthful

mechanism

design.

A

useful

simplification

of

the

problem

of

designing

truthful

auctions

is

obtained

through

the

following

algorithmic

characterization

Related

formulations

to

this

one

have

appeared

in

numerous

places

in

recent

literature

(e.g.,

DEFINITION

Given

a

bid

vector

of

n

bids,

b

bn),

let

b-i

denote

the

vector

of

with

bi

replaced

with

a

i.e.,

b-i

bn).

DEFINITION

Let

f

be

a

function

from

bid

vectors

(with

a

to

prices

(non-negative

real

numbers).

The

deterministic

bidindependent

auction

defined

by

f,

BIf

works

as

follows.

For

each

bidder

i:

Set

ti

f(b-i).

If

ti

bi,

bidder

i

wins

at

price

ti.

If

ti

bi,

bidder

i

loses.

Otherwise,

(ti

bi)

the

auction

can

either

accept

the

bid

at

price

ti

or

reject

it.

A

randomized

bid-independent

auction

is

a

distribution

over

deterministic

bid-independent

auctions.

The

proof

of

the

following

theorem

can

be

found,

for

example,

in

THEOREM

An

auction

is

truthful

if

and

only

if

it

is

equivalent

to

a

bid-independent

auction.

Given

this

equivalence,

we

will

use

the

the

terminology

bidindependent

and

truthful

interchangeably.

For

a

randomized

bid-independent

auction,

f(b-i)

is

a

random

variable.

We

denote

the

probability

density

of

f(b-i)

at

z

by

ρb-i

(z).

We

denote

the

profit

of

a

truthful

auction

A

on

input

b

as

A(b).

The

expected

profit

of

the

auction,

E[A(b)],

is

the

sum

of

the

expected

payments

made

by

each

bidder,

which

we

denote

by

pi(b)

for

bidder

i.

Clearly,

the

expected

payment

of

each

bid

satisfies

pi(b)

bi

xρb-i

(x)dx.

Competitive

Framework

We

now

review

the

competitive

framework

from

In

order

to

evaluate

the

performance

of

auctions

with

respect

to

the

goal

of

profit

maximization,

we

introduce

the

optimal

single

price

omniscient

auction

F

and

the

related

omniscient

auction

DEFINITION

Give

a

vector

b

bn),

let

b(i)

represent

the

i-th

largest

value

in

b.

The

optimal

single

price

omniscient

auction,

F,

is

defined

as

follows.

Auction

F

on

input

b

determines

the

value

k

such

that

kb(k)

is

maximized.

All

bidders

with

bi

b(k)

win

at

price

b(k);

all

remaining

bidders

lose.

The

profit

of

F

on

input

b

is

thus

F(b)

kb(k).

In

the

competitive

framework

of

and

subsequent

papers,

the

performance

of

a

truthful

auction

is

gauged

in

comparison

to

the

optimal

singled

priced

auction

that

sells

at

least

two

units.

The

profit

of

is

kb(k)

There

are

a

number

of

reasons

to

choose

this

benchmark

for

comparison,

interested

readers

should

see

or

for

a

more

detailed

discussion.

Let

A

be

a

truthful

auction.

We

say

that

A

is

β-competitive

against

(or

just

β-competitive)

if

for

all

bid

vectors

b,

the

expected

profit

of

A

on

b

satisfies

E[A(b)]

(b)

β

In

Section

we

generalize

this

framework

to

other

profit

benchmarks.

Scale

Invariant

and

Symmetric

Auctions

A

symmetric

auction

is

one

where

the

auction

outcome

is

unchanged

when

the

input

bids

arrive

in

a

different

permutation.

Goldberg

et

al.

show

that

a

symmetric

auction

achieves

the

optimal

competitive

ratio.

This

is

natural

as

the

profit

benchmark

we

consider

is

symmetric,

and

it

allows

us

to

consider

only

symmetric

auctions

when

looking

for

the

one

with

the

optimal

competitive

ratio.

An

auction

defined

by

bid-independent

function

f

is

scale

invariant

if,

for

all

i

and

all

z,

Pr[f(b-i)

z]

Pr[f(cb-i)

cz].

It

is

conjectured

that

the

assumption

of

scale

invariance

is

without

loss

of

generality.

Thus,

we

are

motivated

to

consider

symmetric

scale-invariant

auctions.

When

specifying

a

symmetric

scaleinvariant

auction

we

can

assume

that

f

is

only

a

function

of

the

relative

magnitudes

of

the

n

bids

in

b-i

and

that

one

of

the

bids,

bj

It

will

be

convenient

to

specify

such

auctions

via

the

density

function

of

f(b-i),

ρb-i

(z).

It

is

enough

to

specify

such

a

density

function

of

the

form

(z)

with

zi

Limited

Supply

Versus

Unlimited

Supply

Following

throughout

the

remainder

of

this

paper

we

will

be

making

the

assumption

that

n

i.e.,

the

number

of

bidders

is

equal

to

the

number

of

units

for

sale.

This

is

without

loss

of

generality

as

(a)

any

lower

bound

that

applies

to

the

n

case

also

extends

to

the

case

where

n

and

(b)

there

is

a

reduction

from

the

unlimited

supply

auction

problem

to

the

limited

supply

auction

problem

that

takes

an

unlimited

supply

auction

that

is

β-competitive

with

and

constructs

a

limited

supply

auction

parameterized

by

that

is

β-competitive

with

the

optimal

omniscient

auction

that

sells

between

and

units

Henceforth,

we

will

assume

that

we

are

in

the

unlimited

supply

case,

and

we

will

examine

lower

bounds

for

limited

supply

problems

by

placing

a

restriction

on

the

number

of

bidders

in

the

auction.

Lower

Bounds

and

Optimal

Auctions

Frequently

in

this

paper,

we

will

refer

to

the

best

known

lower

bound

on

the

competitive

ratio

of

truthful

auctions:

THEOREM

The

competitive

ratio

of

any

auction

on

n

bidders

is

at

least

n

−1

n

i

i

n

i

DEFINITION

Let

Υn

denote

the

n-bidder

auction

that

achieves

the

optimal

competitive

ratio.

This

bound

is

derived

by

analyzing

the

performance

of

any

auction

on

the

following

distribution

B.

In

each

random

bid

vector

B,

each

bid

Bi

is

drawn

i.i.d.

from

the

distribution

such

that

Pr[Bi

s]

for

all

s

S.

In

the

two-bidder

case,

this

lower

bound

is

This

is

achieved

by

Υ2

which

is

the

Vickrey

In

the

three-bidder

case,

this

lower

bound

is

In

the

next

section,

we

define

the

auction

Υ3

which

matches

this

lower

bound.

In

the

four-bidder

case,

this

lower

bound

is

In

the

limit

as

the

number

of

bidders

grows,

this

lower

bound

approaches

a

number

which

is

approximately

It

is

conjectured

that

this

lower

bound

is

tight

for

any

number

of

bidders

and

the

optimal

auction,

Υn,

matches

it.

The

Vickrey

auction

sells

to

the

highest

bidder

at

the

second

highest

bid

value.

Profit

Extraction

In

this

section

we

review

the

truthful

profit

extraction

mechanism

ProfitExtractR.

This

mechanism

is

a

special

case

of

a

general

cost-sharing

schema

due

to

Moulin

and

Shenker

The

goal

of

profit

extraction

is,

given

bids

b,

to

extract

a

target

value

R

of

profit

from

some

subset

of

the

bidders.

ProfitExtractR:

Given

bids

b,

find

the

largest

k

such

that

the

highest

k

bidders

can

equally

share

the

cost

R.

Charge

each

of

these

bidders

R/k.

If

no

subset

of

bidders

can

cover

the

cost,

the

mechanism

has

no

winners.

Important

properties

of

this

auction

are

as

follows:

ProfitExtractR

is

truthful.

If

R

F(b),

ProfitExtractR(b)

R;

otherwise

it

has

no

winners

and

no

revenue.

We

will

use

this

profit

extraction

mechanism

in

Section

with

the

following

intuition.

Such

a

profit

extractor

makes

it

possible

to

treat

this

subset

of

bidders

as

a

single

bid

with

value

F(S).

Note

that

given

a

single

bid,

b,

a

truthful

mechanism

might

offer

it

price

t

and

if

t

b

then

the

bidder

wins

and

pays

t;

otherwise

the

bidder

pays

nothing

(and

loses).

Likewise,

a

mechanism

can

offer

the

set

of

bidders

S

a

target

revenue

R.

If

R

(S),

then

ProfitExtractR

raises

R

from

S;

otherwise,

the

it

raises

no

revenue

from

S.

AN

OPTIMAL

AUCTION

FOR

THREE

BIDDERS

In

this

section

we

define

the

optimal

auction

for

three

bidders,

and

prove

that

it

indeed

matches

the

known

lower

bound

of

We

follow

the

definition

and

proof

with

a

discussion

of

how

this

auction

was

derived.

DEFINITION

Υ3

is

scale-invariant

and

symmetric

and

given

by

the

bid-independent

function

with

density

function

For

x

with

probability

z

with

probability

density

g(z)

for

z

For

x

with

probability

x

zg(z)dz

x

with

probability

x

(z

z

with

probability

density

g(z)

for

z

x

where

g(x)

THEOREM

The

Υ3

auction

has

a

competitive

ratio

of

which

is

optimal.

Furthermore,

the

auction

raises

exactly

on

every

input

with

non-identical

bids.

PROOF.

Consider

the

bids

x,

y,

with

x

y.

There

are

three

cases.

CASE

(x

y

The

auction

must

raise

expected

revenue

of

at

least

on

these

bids.

The

bidder

with

valuation

x

will

pay

with

and

the

bidder

with

valuation

y

will

pay

with

probability

Therefore

Υ3

raises

on

these

bids.

CASE

(x

y):

The

auction

must

raise

expected

revenue

of

at

least

on

these

bids.

The

bidder

with

valuation

x

will

pay

y

zg(z)dz

in

expectation.

The

bidder

with

valuation

y

will

pay

y

zg(z)dz

in

expectation.

Therefore

Υ3

raises

on

these

bids.

CASE

x

y):

The

auction

must

raise

expected

revenue

of

at

least

on

these

bids.

Consider

the

revenue

raised

from

all

three

bidders:

x,

y)

p(x,

y)

p(y,

x)

y

zg(z)dz

x

zg(z)dz

x

x

(z

y

x

zg(z)dz

(x

x

zg(z)dz

x

x

g(z)dz

The

final

equation

comes

from

substituting

in

g(x)

and

expanding

the

integrals.

Note

that

the

fraction

of

raised

on

every

input

is

identical.

If

any

of

the

inequalities

x

y

are

not

strict,

the

same

proof

applies

giving

a

lower

bound

on

the

auction"s

profit;

however,

this

bound

may

no

longer

be

tight.

Motivation

for

Υ3

In

this

section,

we

will

conjecture

that

a

particular

input

distribution

is

worst-case,

and

show,

as

a

consequence,

that

all

inputs

are

worstcase

in

the

optimal

auction.

By

applying

this

consequence,

we

will

derive

an

optimal

auction

for

three

bidders.

A

truthful,

randomized

auction

on

n

bidders

can

be

represented

by

a

randomized

function

f

n

R

that

maps

masked

bid

vectors

to

prices

in

R.

By

normalization,

we

can

assume

that

the

lowest

possible

bid

is

Recall

that

ρb-i

(z)

Pr[f(b-i)

z].

The

optimal

auction

for

the

finite

auction

problem

can

be

found

by

the

following

optimization

problem

in

which

the

variables

are

ρb-i

(z):

maximize

r

subject

to

n

bi

zρb-i

(z)dz

(b)

ρb-i

(z)dz

ρb-i

(z)

This

set

of

integral

inequalities

is

difficult

to

maximize

over.

However,

by

guessing

which

constraints

are

tight

and

which

are

slack

at

the

optimum,

we

will

be

able

to

derive

a

set

of

differential

equations

for

which

any

feasible

solution

is

an

optimal

auction.

As

we

discuss

in

Section

in

the

authors

define

a

distribution

and

use

it

to

find

a

lower

bound

on

the

competitive

ratio

of

the

optimal

auction.

For

two

bidders,

this

bid

distribution

is

the

worst-case

input

distribution.

We

guess

(and

later

verify)

that

this

distribution

is

the

worst-case

input

distribution

for

three

bidders

as

well.

Since

this

distribution

has

full

support

over

the

set

of

all

bid

vectors

and

a

worst-case

distribution

puts

positive

probability

only

on

worst-case

inputs,

we

can

therefore

assume

that

all

but

a

measure

zero

set

of

inputs

is

worst-case

for

the

optimal

auction.

In

the

optimal

two-bidder

auction,

all

inputs

with

non-identical

bids

are

worst-case,

so

we

will

assume

the

same

for

three

bidders.

The

guess

that

these

constraints

are

tight

allows

us

to

transform

the

optimization

problem

into

a

feasibility

problem

constrained

by

differential

equations.

If

the

solution

to

these

equations

has

value

matching

the

lower

bound

obtained

from

the

worst-case

distribution,

then

this

solution

is

the

optimal

auction

and

that

our

conjectured

choice

of

worst-case

distribution

is

correct.

In

Section

we

show

that

the

optimal

auction

must

sometimes

place

probability

mass

on

sale

prices

above

the

highest

bid.

This

motivates

considering

symmetric

scale-invariant

auctions

for

three

bidders

with

probability

density

function,

of

the

following

form:

with

discrete

probability

a(x)

x

with

discrete

probability

b(x)

z

with

probability

density

g(z)

for

z

x

In

this

auction,

the

sale

price

for

the

first

bidder

is

either

one

of

the

latter

two

bids,

or

higher

than

either

bid

with

a

probability

density

which

is

independent

of

the

input.

The

feasibility

problem

which

arises

from

the

linear

optimization

problem

by

assuming

the

constraints

are

tight

is

as

follows:

a(y)

a(x)

xb(x)

y

x

zg(z)dz

r

∀x

y

a(x)

b(x)

x

g(z)dz

a(x)

b(x)

g(z)

Solving

this

feasibility

problem

gives

the

auction

Υ3

proposed

above.

The

proof

of

its

optimality

validates

its

proposed

form.

Finding

a

simple

restriction

on

the

form

of

n-bidder

auctions

for

n

under

which

the

optimal

auction

can

be

found

analytically

as

above

remains

an

open

problem.

GENERALIZED

PROFIT

BENCHMARKS

In

this

section,

we

widen

our

focus

beyond

auctions

that

compete

with

to

consider

other

benchmarks

for

an

auction"s

profit.

We

will

show

that,

for

three

bidders,

the

form

of

the

optimal

auction

is

essentially

independent

of

the

benchmark

profit

used.

This

results

strongly

corroborates

the

worst-case

competitive

analysis

of

auctions

by

showing

that

our

techniques

allow

us

to

derive

auctions

which

are

competitive

against

a

broad

variety

of

reasonable

benchmarks

rather

than

simply

against

Previous

work

in

competitive

analysis

of

auctions

has

focused

on

the

question

of

designing

the

auction

with

the

best

competitive

ratio

against

the

profit

of

the

optimal

omniscient

single-priced

mechanism

that

sells

at

least

two

items.

However,

it

is

reasonable

to

consider

other

benchmarks.

For

instance,

one

might

wish

to

compete

against

V∗

the

profit

of

the

k-Vickrey

auction

with

optimal-inhindsight

choice

of

Alternatively,

if

an

auction

is

being

used

as

a

subroutine

in

a

larger

mechanism,

one

might

wish

to

choose

the

auction

which

is

optimally

competitive

with

a

benchmark

specific

to

that

purpose.

Recall

that

(b)

kb(k).

We

can

generalize

this

definition

to

Gs,

parameterized

by

s

sn)

and

defined

as:

Gs(b)

max

skb(k).

When

considering

Gs

we

assume

without

loss

of

generality

that

si

as

otherwise

the

constraint

imposed

by

is

irrelevant.

Note

that

is

the

special

case

of

Gs

with

si

i,

and

that

V∗

Gs

with

si

i

Recall

that

the

k-Vickrey

auction

sells

a

unit

to

each

of

the

highest

k

bidders

at

a

price

equal

to

the

k

highest

bid,

achieving

a

profit

of

Competing

with

Gs

We

will

now

design

a

three-bidder

auction

Υs,t

that

achieves

the

optimal

competitive

ratio

against

Gs,t.

As

before,

we

will

first

find

a

lower

bound

on

the

competitive

ratio

and

then

design

an

auction

to

meet

that

bound.

We

can

lower

bound

the

competitive

ratio

of

Υs,t

using

the

same

worst-case

distribution

from

that

we

used

against

Evaluating

the

performance

of

any

auction

competing

against

Gs,t

on

this

distribution

will

yield

the

following

theorem.

We

denote

the

optimal

auction

for

three

bidders

against

Gs,t

as

Υs,t

THEOREM

The

optimal

three-bidder

auction,

Υs,t

competing

against

Gs,t(b)

has

a

competitive

ratio

of

at

least

The

proof

can

be

found

in

the

appendix.

Similarly,

we

can

find

the

optimal

auction

against

Gs,t

using

the

same

technique

we

used

to

solve

for

the

three

bidder

auction

with

the

best

competitive

ratio

against

DEFINITION

Υs,t

is

scale-invariant

and

symmetric

and

given

by

the

bid-independent

function

with

density

function

For

x

t

s

with

probability

z

with

probability

density

g(z)

for

z

t

s

For

x

t

s⎧

with

probability

x

t

s

zg(z)dz

x

with

probability

x

t

s

(z

z

with

probability

density

g(z)

for

z

x

where

g(x)

THEOREM

Υs,t

is

-competitive

with

Gs,t.

This

auction,

like

can

be

derived

by

reducing

the

optimization

problem

to

a

feasibility

problem,

guessing

that

the

optimal

solution

has

the

same

form

as

Υs,t

and

solving.

The

auction

is

optimal

because

it

matches

the

lower

bound

found

above.

Note

that

the

form

of

Υs,t

is

essentially

the

same

as

for

but

that

the

probability

of

each

price

is

scaled

depending

on

the

values

of

s

and

t.

That

our

auction

for

three

bidders

matches

the

lower

bound

computed

by

the

input

distribution

used

in

is

strong

evidence

that

this

input

distribution

is

the

worst-case

input

distribution

for

any

number

of

bidders

and

any

generalized

profit

benchmark.

Furthermore,

we

strongly

suspect

that

for

any

number

of

bidders,

the

form

of

the

optimal

auction

will

be

independent

of

the

benchmark

used.

AGGREGATION

AUCTIONS

We

have

seen

that

optimal

auctions

for

small

cases

of

the

limitedsupply

model

can

be

found

analytically.

In

this

section,

we

will

construct

a

schema

for

turning

limited

supply

auctions

into

unlimited

supply

auctions

with

a

good

competitive

ratio.

As

discussed

in

Section

the

existence

of

a

profit

extractor,

ProfitExtractR,

allows

an

auction

to

treat

a

set

of

bids

S

as

a

single

bid

with

value

F(S).

Given

n

bidders

and

an

auction,

Am,

for

m

n

bidders,

we

can

convert

the

m-bidder

auction

into

an

n-bidder

auction

by

randomly

partitioning

the

bidders

into

m

subsets

and

then

treating

each

subset

as

a

single

bidder

(via

ProfitExtractR)

and

running

the

m-bidder

auction.

DEFINITION

Given

a

truthful

m-bidder

auction,

Am,

the

m-aggregation

auction

for

Am,

AggAm

works

as

follows:

Cast

each

bid

uniformly

at

random

into

one

of

m

bins,

resulting

in

bid

vectors

b(m)

For

each

bin

j,

compute

the

aggregate

bid

Bj

F(b(j)

Let

B

be

the

vector

of

aggregate

bids,

and

B−j

be

the

aggregate

bids

for

all

bins

other

than

j.

Compute

the

aggregate

price

Tj

f(B−j),

where

f

is

the

bid-independent

function

for

Am.

For

each

bin

j,

run

ProfitExtractTj

on

b(j)

Since

Am

and

ProfitExtractR

are

truthful,

Tj

is

computed

independently

of

any

bid

in

bin

j

and

thus

the

price

offered

any

bidder

in

b(j)

is

independent

of

his

bid;

therefore,

THEOREM

If

Am

is

truthful,

the

m-aggregation

auction

for

Am,

AggAm

is

truthful.

Note

that

this

schema

yields

a

new

way

of

understanding

the

Random

Sampling

Profit

Extraction

(RSPE)

auction

as

the

simplest

case

of

an

aggregation

auction.

It

is

the

auction

for

the

Vickrey

auction.

To

analyze

AggAm

consider

throwing

k

balls

into

m

labeled

bins.

Let

k

represent

a

configuration

of

balls

in

bins,

so

that

ki

is

equal

to

the

number

of

balls

in

bin

i,

and

k(i)

is

equal

to

the

number

of

balls

in

the

ith

largest

bin.

Let

Km,k

represent

the

set

of

all

possible

configurations

of

k

balls

in

m

bins.

We

write

the

multinomial

coefficient

of

k

as

k

k

The

probability

that

a

particular

configuration

k

arises

by

throwing

balls

into

bins

uniformly

at

random

is

k

k

m−k

THEOREM

Let

Am

be

an

auction

with

competitive

ratio

β.

Then

the

m-aggregation

auction

for

Am,

AggAm

raises

the

following

fraction

of

the

optimal

revenue

(b):

E

AggAm

(b)

min

k∈Km,k

(k)

k

k

βkmk

PROOF.

By

definition,

sells

to

k

bidders

at

a

single

price

p.

Let

kj

be

the

number

of

such

bidders

in

b(j)

Clearly,

F(b(j)

pkj.

Therefore,

F(b(n)

pkn)

pk

kn)

k

The

inequality

follows

from

the

monotonicity

of

and

the

equality

from

the

homogeneity

of

ProfitExtractTj

will

raise

Tj

if

Tj

Bj

and

no

profit

otherwise.

Thus,

E

AggAm

(b)

E

(B)/β

The

theorem

follows

by

rewriting

this

expectation

as

a

sum

over

all

k

in

Km,k.

A

Competitive

Auction

We

apply

the

aggregation

auction

schema

to

our

optimal

auction

for

three

bidders,

to

achieve

an

auction

with

competitive

ratio

This

improves

on

the

previously

best

known

auction

which

is

THEOREM

The

aggregation

auction

for

Υ3

has

competitive

ratio

PROOF.

By

theorem

E

(b)

min

k

k−i

(i,

j,

k

i

j)

k

i,j,k−i−j

For

k

and

k

E

(b)

k/β.

As

k

increases,

E

(b)

increases

as

well.

Since

we

do

not

expect

to

find

a

closed-form

formula

for

the

revenue,

we

lower

bound

(b)

by

Using

large

deviation

bounds,

one

can

show

that

this

lower

bound

is

greater

than

k/β

for

large-enough

k,

and

the

remainder

can

be

shown

by

explicit

calculation.

Plugging

in

β

the

competitive

ratio

is

As

k

increases,

the

competitive

ratio

approaches

Note

that

the

above

bound

on

the

competitive

ratio

of

is

tight.

To

see

this,

consider

the

bid

vector

with

two

very

large

and

non-identical

bids

of

h

and

h

with

the

remaining

bids

Given

that

the

competitive

ratio

of

Υ3

is

tight

on

this

example,

the

expected

revenue

of

this

auction

on

this

input

will

be

exactly

A

Gs,t-based

Aggregation

Auction

In

this

section

we

show

that

Υ3

is

not

the

optimal

auction

to

use

in

an

aggregation

auction.

One

can

do

better

by

choosing

the

auction

that

is

optimally

competitive

against

a

specially

tailored

benchmark.

To

see

why

this

might

be

the

case,

notice

(Table

that

the

fraction

of

(b)

raised

for

when

there

are

k

and

k

winning

bidders

in

(b)

is

substantially

smaller

than

the

fraction

of

(b)

raised

when

there

are

more

winners.

This

occurs

because

the

expected

ratio

between

(B)

and

(b)

is

lower

in

this

case

while

the

competitive

ratio

of

Υ3

is

constant.

If

we

chose

a

three

bidder

auction

that

performed

better

when

has

smaller

numbers

of

winners,

our

aggregation

auction

would

perform

better

in

the

worst

case.

One

approach

is

to

compete

against

a

different

benchmark

that

puts

more

weight

than

on

solutions

with

a

small

number

of

winners.

Recall

that

is

the

instance

of

Gs,t

with

s

and

t

By

using

the

auction

that

competes

optimally

against

Gs,t

with

s

while

holding

t

we

will

raise

a

higher

fraction

of

revenue

on

smaller

numbers

of

winning

bidders

and

a

lower

fraction

of

revenue

on

large

numbers

of

winning

bidders.

We

can

numerically

optimize

the

values

of

s

and

t

in

Gs,t(b)

in

order

to

achieve

the

best

competitive

ratio

for

the

aggregation

auction.

In

fact,

this

will

allow

us

to

improve

our

competitive

ratio

slightly.

THEOREM

For

an

optimal

choice

of

s

and

t,

the

aggregation

auction

for

Υs,t

is

The

proof

follows

the

outline

of

Theorem

and

with

the

optimal

choice

of

s

(while

t

is

held

constant

at

Further

Reducing

the

Competitive

Ratio

There

are

a

number

of

ways

we

might

attempt

to

use

this

aggregation

auction

schema

to

continue

to

push

the

competitive

ratio

down.

In

this

section,

we

give

a

brief

discussion

of

several

attempts.

AggΥm

for

m

If

the

aggregation

auction

for

Υ2

has

a

competitive

ratio

of

and

the

aggregation

auction

for

Υ3

has

a

competitive

ratio

of

can

we

improve

the

competitive

ratio

by

aggregating

Υ4

or

Υm

for

larger

m?

We

conjecture

in

the

negative:

for

m

the

aggregation

auction

for

Υm

has

a

larger

competitive

ratio

than

the

aggregation

auction

for

The

primary

difficulty

in

proving

this

k

m

m

m

m

m

m

Table

E

(b)

for

AggΥm

as

a

function

of

k,

the

optimal

number

of

winners

in

(b).

The

lowest

value

for

each

column

is

printed

in

bold.

conjecture

lies

in

the

difficulty

of

finding

a

closed-form

solution

for

the

formula

of

Theorem

We

can,

however,

evaluate

this

formula

numerically

for

different

values

of

m

and

k,

assuming

that

the

competitive

ratio

for

Υm

matches

the

lower

bound

for

m

given

by

Theorem

Table

shows,

for

each

value

of

m

and

k,

the

fraction

of

raised

by

the

aggregation

auction

for

AggΥm

when

there

are

k

winning

bidders,

assuming

the

lower

bound

of

Theorem

is

tight.

Convex

combinations

of

AggΥm

As

can

be

seen

in

Table

when

m

the

worst-case

value

of

k

is

no

longer

and

but

instead

an

increasing

function

of

m.

An

aggregation

auction

for

Υm

outperforms

the

aggregation

auction

for

Υ3

when

there

are

two

or

three

winning

bidders,

while

the

aggregation

auction

for

Υ3

outperforms

the

other

when

there

are

at

least

six

winning

bidders.

Thus,

for

instance,

an

auction

which

randomizes

between

aggregation

auctions

for

Υ3

and

Υ4

will

have

a

worst-case

which

is

better

than

that

of

either

auction

alone.

Larger

combinations

of

auctions

will

allow

more

room

to

optimize

the

worst-case.

However,

we

suspect

that

no

convex

combination

of

aggregation

auctions

will

have

a

competitive

ratio

lower

than

Furthermore,

note

that

we

cannot

yet

claim

the

existence

of

a

good

auction

via

this

technique

as

the

optimal

auction

Υn

for

n

is

not

known

and

it

is

only

conjectured

that

the

bound

given

by

Theorem

and

represented

in

Table

is

correct

for

Υn.

A

LOWER

BOUND

FOR

CONSERVATIVE

AUCTIONS

In

this

section,

we

define

a

class

of

auctions

that

never

offer

a

sale

price

which

is

higher

than

any

bid

in

the

input

and

prove

a

lower

bound

on

the

competitive

ratio

of

these

auctions.

As

this

lower

bound

is

stronger

than

the

lower

bound

of

Theorem

for

n

it

shows

that

the

optimal

auction

must

occasionally

charge

a

sales

price

higher

than

any

bid

in

the

input.

Specifically,

this

result

partially

explains

the

form

of

the

optimal

three

bidder

auction.

DEFINITION

We

say

an

auction

BIf

is

conservative

if

its

bidindependent

function

f

satisfies

f(b-i)

max(b-i).

We

can

now

state

our

lower

bound

for

conservative

auctions.

THEOREM

Let

A

be

a

conservative

auction

for

n

bidders.

Then

the

competitive

ratio

of

A

is

at

least

n

COROLLARY

The

competitive

ratio

of

any

conservative

auction

for

an

arbitrary

number

of

bidders

is

at

least

three.

For

a

two-bidder

auction,

this

restriction

does

not

prevent

optimality.

the

Vickrey

auction,

is

conservative.

For

larger

numbers

of

bidders,

however,

the

restriction

to

conservative

auctions

does

affect

the

competitive

ratio.

For

the

three-bidder

case,

Υ3

has

competitive

ratio

while

the

best

conservative

auction

is

no

better

than

The

k-Vickrey

auction

and

the

Random

Sampling

Optimal

Price

auction

are

conservative

auctions.

The

Random

Sampling

Profit

Extraction

auction

and

the

CORE

auction

on

the

other

hand,

use

the

ProfitExtractR

mechanism

as

a

subroutine

and

thus

sometimes

offer

a

sale

price

which

is

higher

than

the

highest

input

bid

value.

In

the

authors

define

a

restricted

auction

as

one

on

which,

for

any

input,

the

sale

prices

are

drawn

from

the

set

of

input

bid

values.

The

class

of

conservative

auctions

can

be

viewed

as

a

generalization

of

the

class

of

restricted

auctions

and

therefore

our

result

below

gives

lower

bounds

on

the

performance

of

a

broader

class

of

auctions.

We

will

prove

Theorem

with

the

aid

of

the

following

lemma:

LEMMA

Let

A

be

a

conservative

auction

with

competitive

ratio

for

n

bidders.

Let

h

n.

Let

and

hk

kh

otherwise.

Then,

for

all

k

and

H

kh,

H)

hk]

PROOF.

The

lemma

is

proved

by

strong

induction

on

k.

First

some

notation

that

will

be

convenient.

For

any

particular

k

and

H

we

will

be

considering

the

bid

vector

b

hk,

H)

and

placing

bounds

on

ρb-i

(z).

Since

we

can

assume

without

loss

of

generality

that

the

auction

is

symmetric,

we

will

notate

as

b

with

any

one

of

the

bids

masked.

Similarly

we

notate

b-hk

(resp.

b-H

as

b

with

the

hk-valued

bid

(resp.

H-valued

bid)

masked.

We

will

also

let

phk

(b),

and

pH

(b)

represent

the

expected

payment

of

a

hk-valued,

and

H-valued

bidder

in

A

on

b,

respectively

(note

by

symmetry

the

expected

payment

for

all

bidders

is

the

same).

Base

case

(k

hk

A

must

raise

revenue

of

at

least

rn

on

b

H):

rn

pH

(b)

(n

(n

(x)dx

(n

(x)dx

The

second

inequality

follows

from

the

conservatism

of

the

underlying

auction.

The

base

case

follows

trivially

from

the

final

inequality.

Inductive

case

(k

hk

kh):

Let

b

hk,

H).

First,

we

will

find

an

upper

bound

on

pH(b)

pH

(b)

xρb-H

(x)dx

k

hi

xρb-H

(x)dx

k

hi

hi

ρb-H

(x)dx

n

n

ih

kh

nr

n

(k

n

n

kh

r)

n

(k

n

n

Equation

follows

from

the

conservatism

of

A

and

is

from

invoking

the

strong

inductive

hypothesis

with

H

kh

and

the

observation

that

the

maximum

possible

revenue

will

be

found

by

placing

exactly

enough

probability

at

each

multiple

of

h

to

satisfy

the

constraints

of

the

inductive

hypothesis

and

placing

the

remaining

probability

at

kh.

Next,

we

will

find

a

lower

bound

on

phk

(b)

by

considering

the

revenue

raised

by

the

bids

b.

Recall

that

A

must

obtain

a

profit

of

at

least

(b)

Given

upper-bounds

on

the

profit

from

the

H-valued,

equation

bid

and

the

bids,

the

profit

from

the

hk-valued

bid

must

be

at

least:

phk

(b)

(n

pH(b)

kh

r)

n

(k

n

n

O(n).

In

order

to

lower

bound

Pr[f(b-hk

kh],

consider

the

auction

that

minimizes

it

and

is

consistent

with

the

lower

bounds

obtained

by

the

strong

inductive

hypothesis

on

Pr[f(b-hk

ih].

To

minimize

the

constraints

implied

by

the

strong

inductive

hypothesis,

we

place

the

minimal

amount

of

probability

mass

required

each

price

level.

This

gives

ρhk

(b)

with

probability

at

and

exactly

at

each

hi

for

i

k.

Thus,

the

profit

from

offering

prices

at

most

is

In

order

to

satisfy

our

lower

bound,

on

phk

(b),

it

must

put

at

least

on

hk.

Therefore,

the

probability

that

the

sale

price

will

be

no

more

than

kh

on

masked

bid

vector

on

bid

vector

b

kh,

H)

must

be

at

least

Given

Lemma

Theorem

is

simple

to

prove.

PROOF.

Let

A

be

a

conservative

auction.

Suppose

Let

k

H

kh,

and

h

n.

By

Lemma

kh,

H)

hk]

k

But

this

is

a

contradiction,

so

Thus,

r

n

The

theorem

follows.

CONCLUSIONS

AND

FUTURE

WORK

We

have

found

the

optimal

auction

for

the

three-unit

limitedsupply

case,

and

shown

that

its

structure

is

essentially

independent

of

the

benchmark

used

in

its

competitive

analysis.

We

have

then

used

this

auction

to

derive

the

best

known

auction

for

the

unlimited

supply

case.

Our

work

leaves

many

interesting

open

questions.

We

found

that

the

lower

bound

of

is

matched

by

an

auction

for

three

bidders,

even

when

competing

against

generalized

benchmarks.

The

most

interesting

open

question

from

our

work

is

whether

the

lower

bound

from

Theorem

can

be

matched

by

an

auction

for

more

than

three

bidders.

We

conjecture

that

it

can.

Second,

we

consider

whether

our

techniques

can

be

extended

to

find

optimal

auctions

for

greater

numbers

of

bidders.

The

use

of

our

analytic

solution

method

requires

knowledge

of

a

restricted

class

of

auctions

which

is

large

enough

to

contain

an

optimal

auction

but

small

enough

that

the

optimal

auction

in

this

class

can

be

found

explicitly

through

analytic

methods.

No

class

of

auctions

which

meets

these

criteria

is

known

even

for

the

four

bidder

case.

Also,

when

the

number

of

bidders

is

greater

than

three,

it

might

be

the

case

that

the

optimal

auction

is

not

expressible

in

terms

of

elementary

functions.

Another

interesting

set

of

open

questions

concerns

aggregation

auctions.

As

we

show,

the

aggregation

auction

for

Υ3

outperforms

the

aggregation

auction

for

Υ2

and

it

appears

that

the

aggregation

auction

for

Υ3

is

better

than

Υm

for

m

We

leave

verification

of

this

conjecture

for

future

work.

We

also

show

that

Υ3

is

not

the

best

three-bidder

auction

for

use

in

an

aggregation

auction,

but

the

auction

that

beats

it

is

able

to

reduce

the

competitive

ratio

of

the

overall

auction

only

a

little

bit.

It

would

be

interesting

to

know

whether

for

any

m

there

is

an

m-aggregation

auction

that

substantially

improves

on

the

competitive

ratio

of

AggΥm

Finally,

we

remark

that

very

little

is

known

about

the

structure

of

the

optimal

competitive

auction.

In

our

auction

the

sales

price

for

a

given

bidder

is

restricted

either

to

be

one

of

the

other

bid

values

or

to

be

higher

than

all

other

bid

values.

The

optimal

auction

for

two

bidders,

the

Vickrey

auction,

also

falls

within

this

class

of

auctions,

as

its

sales

prices

are

restricted

to

bid

values.

We

conjecture

that

an

optimal

auction

for

any

number

of

bidders

lies

within

this

class.

Our

paper

provides

partial

evidence

for

this

conjecture:

the

lower

bound

of

Section

on

conservative

auctions

shows

that

the

optimal

auction

must

offer

sales

prices

higher

than

any

bid

value

if

the

lower

bound

of

Theorem

is

tight,

as

is

conjectured.

It

remains

to

show

that

optimal

auctions

otherwise

only

offer

sales

prices

at

bid

values.

ACKNOWLEDGEMENTS

The

authors

wish

to

thank

Yoav

Shoham

and

Noga

Alon

for

helpful

discussions.

REFERENCES

A.

Archer

and

E.

Tardos.

Truthful

mechanisms

for

one-parameter

agents.

In

Proc.

of

the

IEEE

Symposium

on

Foundations

of

Computer

Science,

S.

Baliga

and

R.

Vohra.

Market

research

and

market

design.

Advances

in

Theoretical

Economics,

A.

Borodin

and

R.

El-Yaniv.

Online

Computation

and

Competitive

Analysis.

Cambridge

University

Press,

J.

Bulow

and

J.

Roberts.

The

Simple

Economics

of

Optimal

Auctions.

The

Journal

of

Political

Economy,

A.

Fiat,

A.

V.

Goldberg,

J.

D.

Hartline,

and

A.

R.

Karlin.

Competitive

generalized

auctions.

In

Proc.

ACM

Symposium

on

the

Theory

of

Computing,

pages

ACM,

A.

Goldberg,

J.

Hartline,

A.

Karlin,

M.

Saks,

and

A.

Wright.

Competitive

auctions

and

digital

goods.

Games

and

Economic

Behavior,

Submitted

for

publication.

An

earlier

version

available

as

InterTrust

Technical

Report

at

URL

A.

V.

Goldberg

and

J.

D.

Hartline.

Competitiveness

via

consensus.

In

Proc.

Symposium

on

Discrete

Algorithms,

pages

ACM/SIAM,

A.

V.

Goldberg,

J.

D.

Hartline,

A.

R.

Karlin,

and

M.

E.

Saks.

A

lower

bound

on

the

competitive

ratio

of

truthful

auctions.

In

Proc.

Symposium

on

Theoretical

Aspects

of

Computer

Science,

pages

Springer,

A.

V.

Goldberg,

J.

D.

Hartline,

and

A.

Wright.

Competitive

auctions

and

digital

goods.

In

Proc.

Symposium

on

Discrete

Algorithms,

pages

ACM/SIAM,

D.

Lehmann,

L.

I.

O"Callaghan,

and

Y.

Shoham.

Truth

Revelation

in

Approximately

Efficient

Combinatorial

Auctions.

In

Proc.

of

ACM

Conf.

on

E-Commerce,

pages

ACM

Press,

New

York,

H.

Moulin

and

S.

Shenker.

Strategyproof

Sharing

of

Submodular

Costs:

Budget

Balance

Versus

Efficiency.

Economic

Theory,

R.

Myerson.

Optimal

Auction

Design.

Mathematics

of

Operations

Research,

N.

Nisan

and

A.

Ronen.

Algorithmic

Mechanism

Design.

In

Proc.

of

Symp.

on

Theory

of

Computing,

pages

ACM

Press,

New

York,

I.

Segal.

Optimal

pricing

mechanisms

with

unknown

demand.

American

Economic

Review,

W.

Vickrey.

Counterspeculation,

Auctions,

and

Competitive

Sealed

Tenders.

J.

of

Finance,

APPENDIX

A.

PROOF

OF

THEOREM

We

wish

to

prove

that

Υs,t

the

optimal

auction

for

three

bidders

against

Gs,t,

has

competitive

ratio

at

least

Our

proof

follows

the

outline

of

the

proof

of

Lemma

and

Theorem

from

however,

our

case

is

simpler

because

we

only

looking

for

a

bound

when

n

Define

the

random

bid

vector

B

with

Pr[Bi

z]

We

compute

EB[Gs,t(B)]

by

integrating

Pr[Gs,t(B)

z].

Then

we

use

the

fact

that

no

auction

can

have

expected

profit

greater

than

on

B

to

find

a

lower

bound

on

the

competitive

ratio

against

Gs,t

for

any

auction.

For

the

input

distribution

B

defined

above,

let

B(i)

be

the

ith

largest

bid.

Define

the

disjoint

events

z/s

z/t,

and

z/t.

Intuitively,

corresponds

to

the

event

that

all

three

bidders

win

in

Gs,t,

while

corresponds

to

the

event

that

only

the

top

two

bidders

win.

Gs,t(B)

will

be

greater

than

z

if

either

event

occurs:

Pr[Gs,t(B)

z]

s

z

t

z

t

z

Using

the

identity

defined

for

non-negative

continuous

random

variables

that

E[X]

Pr[X

x]

dx,

we

have

EB[Gs,t(B)]

t

t

s

z

t

z

t

z

dz

Given

that,

for

any

auction

A,

EB[EA[A(B)]]

it

is

clear

that

EB[Gs,t(B)]

EB[EA[A(B)]]

Therefore,

there

exists

some

input

b

for

each

auction

A

such

that

Gs,t(b)

EA[A(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 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 B O O O O O O O O O O O O O O O O O B O O B I B O O O O O O B O O O O O O B 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 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 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 O O 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 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 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 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 B O O O O B I O O O O O B O B O O B O O O O O O O O B O O O B O O O O O O B I 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 B 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 B O O O O B O O O O B I O O O O O O O B I O O B 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 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 I 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 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 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 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 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 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 B O O B I O O O O B 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 B 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 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 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 B O O O O O B O O O O O O O O O O O O O B O O O O B O O B I 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 B I B O O O O O O O O B O O O O B O O O B O O O B O O B I 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 B O O O O O B O O O O O O O O O O O O O B O O O B 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 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 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 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 B 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 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 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 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 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 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 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 B 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 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 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 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 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 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 I B O O O O O B O O O O B I B 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 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 B 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 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 B O O O O O B O B 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 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 B O O O O O O O O O B 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 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 B 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B O O O O O O O B O O O B O O O B O O O O O B O O O O B O O O O O O O B O O O O B O 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 B 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 B O O O O B O O O O O O B 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 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 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 B 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 B I 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 O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B O O O O O O O B O O O O O O O O O O B O O O B O O O O B O O O B O O O B O O B O 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 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 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 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 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 O O O O O O 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 O O O O O O O O O O O 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 O B O O O O O 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 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 B I 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 B 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 B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B 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 O O O O O O O B O O B 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 B O O O O B O O O O O B O O O O O O B O O B O O O O O O O O B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B O O O O O O O B 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 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 B 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B O O O O O O O O O O O O O B 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 B O O O O O B O O O O O B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B 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 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 B 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 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 B O O O B 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 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 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 B O O O O O O B 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 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 B O O O O O O O B O O O O O B O O O O O O O B O O O O O O B 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B O O O O O O O O O O O O O O O B O O O B I O O O O O B O O O O O B O O B I O O O O O O O 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 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 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 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 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 B O O O O O B O O B 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O 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 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 B 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 O O O O O O O O O O O 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 B O O O B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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

mechanism design
auction
competitive analysis
ratio
benchmark
unlimited supply
bound
distribution


PackageBLAST: An Adaptive Multi-Policy Grid Service for Biological Sequence Comparison ∗ Marcelo S. Sousa University of Brasilia Campus UNB - ICC Norte, sub-solo Brasilia, Brazil msousa@unb.br Alba Cristina M. A. Melo University of Brasilia Campus UNB - ICC Norte, sub-solo Brasilia, Brazil alves@unb.br ABSTRACT In this paper, we propose an adaptive task allocation framework to perform BLAST searches in a grid environment against sequence database segments. The framework, called PackageBLAST, provides an infrastructure to choose or incorporate task allocation strategies. Furthermore, we propose a mechanism to compute grid nodes execution weight, adapting the chosen allocation policy to the current computational power of the nodes. Our results present very good speedups and also show that no single allocation strategy is able to achieve the lowest execution times for all scenarios. Categories and Subject Descriptors C.2.4 [Distributed Systems]: Distributed Applications; J.3 [Life and Medical Sciences]: Biology and Genetics 1. INTRODUCTION Biological sequence comparison (or sequence alignment) is one of the most important problems in computational biology, given the number and diversity of the sequences and the frequency on which it is needed to be solved daily. SW [14] is an exact algorithm that finds the best local alignment between two sequences of size n in quadratic time and space. In genome projects, the size of the sequences to be compared is constantly increasing, thus an O(n2 ) solution is expensive. For this reason, heuristics like BLAST [3] were proposed to reduce execution time. The popularity of the Internet made possible the interconnection of millions of powerful machines in a global scale. This led to the idea of grid computing, which involves cooperative and secure sharing of non-dedicated and heterogeneous resources that are geographically distributed [5]. Resource scheduling is one of the most important components of a grid system. The choice of the best resources for a particular application is called task allocation, which is an NP-Complete problem. Grid applications usually do not have high communication rates and many of them follow the master/slave model [13]. In order to schedule master/slave applications many task allocation policies were proposed such as Self Scheduling [15] and FAC2 [8]. The choice of the best allocation policy depends on the application access pattern and on the environment in which it runs [13]. In this paper, we propose PackageBLAST, an adaptive multi-policy grid service to run BLAST searches in grids composed by segmented genetic databases. PackageBLAST executes on Globus 3 [4] and, by now, provides five allocation policies. Also, we propose an adaptive mechanism to assign weights to the grid nodes, taking into account their current workload. As far as we know, this is the first grid service that runs BLAST with multiple task policies with a segmented database in a heterogeneous non-dedicated platform. This paper is organized as follows. Section 2 presents the sequence comparison problem and the BLAST algorithm. Section 3 describes allocation policies for grids. Section 4 discusses related work. Section 5 presents the design of PackageBLAST. Experimental results are discussed in section 6. Section 7 concludes the paper. 2. SEQUENCE COMPARISON To compare two sequences, we must find the best alignment, which is to place one sequence above the other making clear the correspondence between similar characters [7]. Given an alignment between two sequences, a score is usually associated for it as follows (figure 1). For each column, we associate, for instance, +1 if the two characters are identical, -1 if the characters are different and -2 if one of them is a space. The score is the sum of all the values and the maximal score is the similarity between the sequences. To compute exact local sequence alignments, [14] proposed an algorithm (SW), based on dynamic programming, with quadratic time and space complexity. Usually, one given biological sequence is compared against thousands or even millions of sequences that compose genetic data banks. By now, there are millions of entries composed of billions of nucleotides at GenBank, which is one of the most important public gene repositories. Due to the 156 G A C G G A T T A G G A T C G G A A T A G +1 +1 −2 +1 +1 +1 +1 −1 +1 +1 +1 Σ = 6 Figure 1: Example of an alignment with score 6 current growth rate, these databases will soon achieve terabytes. In this scenario, the use of exact methods such as SW is prohibitive. For this reason, faster heuristic methods are proposed which do not guarantee that the best alignment will be produced. Usually, these heuristic methods are evaluated using the concepts of sensitivity and sensibility. Sensitivity is the rate at which the method fails to identify similar sequences whereas sensibility is the rate at which the method identifies sequences that are not similar [7]. BLAST [1] is the most widely used heuristic method for sequence comparison. 2.1 The BLAST Algorithm BLAST (Basic Local Alignment Tool) [1] is a set of programs used to search DNA and protein databases for similarities between sequences. It is designed to obtain high performance with low impact in terms of sensibility. BLAST provides programs to compare many combinations of query and database sequence types (table 1). Table 1: Some of the BLAST family programs Program Database Query Translation BLASTN Nucleotide Nucleotide None BLASTP Protein Protein None BLASTX Protein Nucleotide Query The first version of BLAST searched for local similarities without taking spaces (gaps) into account. In 1996-1997, two gapped versions of BLAST emerged: NCBI-BLAST [3] and WU-BLAST [6]. Basically, the algorithm proceeds in three steps: seeding, extension and evaluation. In the seeding step, a query sequence is split in portions called words of size W. These words are matched to database sequences and used as alignment seeds if their scores are higher than a threshold T. In the extension step, alignments are generated from seeds. A parameter X maintains the recent alignment history and controls this step. Once seeds are extended, the last step begins. The alignments are evaluated to determine if they are statistically significant. The significant ones are termed HSPs (High-scoring Segment Pairs). A new parameter, S, is used to sort alignments. The combination of parameters W, T, X and S is used to determine the sensitivity and speed of BLAST searches. 3. TASK ALLOCATION FOR GRIDS 3.1 Grid Computing Grid Computing was initially developed to enable resource sharing between scientific institutions who needed to share data, software and computational power. The Globus Toolkit [4] emerged as an open source project and quickly became a de facto standard for grid computing infrastructure. Globus implements a set of protocols, APIs and services used by hundreds of grid applications all over the world. In 2002, the Open Grid Services Architecture (OGSA) was introduced by the Global Grid Forum (GGF) to expand standardization. OGSA provided a new architecture for grid applications based on web services in order to achieve interoperability using industry standards. Many OGSA architecture implementations were developed, including one for Globus. The work carried out in this paper is deployed on a grid based on Globus (GT3). Usually, grid applications are modelled as master/slave, where one problem is divided in many independent work units (tasks) of smaller size that can be distributed to slave nodes for parallel processing. A very important problem to be solved in this context is task allocation. The task allocation problem consists of assigning tasks to processors in order to maximize system performance [13]. In this problem, it is assumed that no precedence relations exist among the tasks. 3.2 Task Allocation Strategies Given a master/slave application composed by a master m and S slaves, the allocation function allocate(m, si, N, S) determines how many tasks out of N must be assigned to a slave si (equation 1), where A(N, S) represents an allocation policy. WeightFactor(m, si, S) was defined by [13] (equation 2) and provides weights for each slave si, based on its statically known processing rate (WorkerRate). allocate(m, si, N, S) = A(N, S) ∗ W eightF actor(m, si, S) (1) W eightF actor(m, si, S) = P ∗ W orkerRate(m, si) P i=1 W orkerRate(m, si) (2) The following subsections present some work allocation policies, which are instances A(N, S) of equation 1. 3.3 Fixed (Static Scheduling) The Fixed [13] strategy distributes all work units uniformly to slaves nodes. This strategy is appropriate for homogeneous systems with dedicated resources (equation 3). A(N, S) = N S (3) 3.4 Self Scheduling (SS) Self Scheduling (SS) [15] distributes a single work unit to every slave node (equation 4). A(N, S) = 1, while work units are still left to allocate (4) In SS, the maximum imbalance is limited by the processing time of a work unit in the slowest node. Nevertheless, SS usually demands a lot of communication, since each work unit retrieval requires one interaction with the master. 3.5 Trapezoidal Self Scheduling (TSS) Trapezoidal Self-Scheduling (TSS) [16] allocates work units in groups with a linearly decreasing size. This strategy uses two variables, steps and δ, that represent the total number of allocation steps and the block reduction factor, respectively (equations 5 and 6). steps = 4NS N + 2S (5) 157 δ = N − 2S 2S(steps − 1) (6) TSS calculates the length of the sth block using the difference between the length of the first block and total reduction from the last s − 1 blocks (equation 7). A(s, N, S) = max N 2S − [(s − 1) ∗ δ] , 1 (7) 3.6 Guided Self Scheduling (GSS) Guided Self-Scheduling (GSS) [11] allocates work units in groups whose length decrease exponentially. Its goal is to create a tradeoff between the number of the work units processed and the imbalance in finishing times (equation 8). A(s, N, S) = max N 1 − 1 S s−1 S , 1 , s > 0 (8) 3.7 Factoring (FAC2) FAC2 allocates work units in cycles consisting of S allocation sequences. Equation 9 shows the function that defines the cycle number of an iteration s. In FAC2, half of the remaining work units are allocated in each round (equation 10). round(s) = (s − 1) S + 1 (9) A(s, N, S) = max N S ∗ 2round(s) , 1 (10) 4. RELATED WORK MpiBLAST [2] was proposed for clusters and has two phases. First, the genetic database is segmented. Then, the queries are evenly distributed among the nodes. If the node does not have a database fragment, a local copy is made. A method is proposed that associates data fragments to nodes, trying to minimize the number of copies. BLAST++ [10] groups multiple sequences to reduce the number of database accesses. A master/slave approach is used that allocates the queries to the slaves according to the fixed policy (section 3.3). Each worker executes BLAST++ independently and, finally, the results are collected and combined by the master. GridBlast [9] is a master/slave grid application that uses Globus 2. It distributes sequences among the grid nodes using two allocation policies: FCFS and minmax. Of those, only the last one takes into account the current load and the heterogeneity of the environment. However, to use minmax, the total execution time of each BLAST task must be known. Having decided which sequences will be compared by each node, GridBlast sends the sequences, the executable files and the whole database to the chosen node. When the search finishes, the results are compacted and sent to the master. Grid Blast Toolkit (GBTK) [12] is a web portal to execute BLAST searches in Globus 3. All genetic databases are statically placed on the grid nodes (without replication). GBTK is a master/slave application that receives the sequences and the name of the genetic database. It then verifies if the node that contains the database is available. If so, it is selected. If the node is not available, the less loaded node is chosen and the database is copied to it. Master SlaveSlaveSlave Internet database segment but only part of it is processed in each node The database is replicated in the nodes, Figure 2: PackageBLAST segmentation and distribution mechanism. 5. DESIGN OF PACKAGEBLAST We propose an adaptive task allocation framework which is a grid service to perform BLAST searches against sequence database segments. The framework, called PackageBLAST, provides an infrastructure to choose or incorporate allocation strategies in a master/slave application. We also propose a strategy to compute grid nodes execution weight which distributes work units (database segments) to grid nodes according to their current computational power. 5.1 Database Segmentation and Replication Segmentation consists in the division of a database archive in many portions of smaller size, called segments, that can be processed independently. It enables grid nodes to search smaller parts of a sequence database, reducing the number of disk accesses and hence improving BLAST performance. Also, a single query sequence can be compared against all segments in parallel. Just as in mpiBLAST (section 4), we decided to use database segmentation in PackageBLAST with an NCBI tool called formatdb, which was modified to generate more database segments of smaller size. We opted to replicate the segmented database in every slave grid node to improve data accesses times and to provide a potential for fault tolerance. Figure 2 illustrates this. 5.2 Task Allocation As [13], we think that no allocation policy will produce the best results for every situation. Thus, we propose the use of a framework where many allocation policies can be incorporated. By now, our framework contains five allocation policies: Fixed, SS, GSS, TSS, FAC2, all described in section 3. So, the user can choose or even create the allocation policy which is the most appropriate to his/her environment and his/her BLAST parameters. Besides that, we propose PSS (Package Weighted Adaptive Self-Scheduling), a new strategy that adapts the chosen allocation policy to a grid with local workload. Considering the heterogeneity and dynamic characteristics of the grid, PSS is able to modify the length of the work units during execution, based on average processing time of each node. The expression used for work unit allocation is shown in equation 11, where A(N, P) is the allocation policy for a system with N workload units and P nodes and Φ(m, pi, P) is the weight calculated by PSS. A(N, P) can be a pre-defined allocation policy or a user-defined one. 158 allocate(m, pi, N, P ) = A(N, P ) ∗ Φ(m, pi, P ) (11) To distribute database segments to nodes, the master analyzes periodic slave notifications. The expression used is Φ(m, pi, P) (equation 12), defined as the weighted mean from the last Ω notifications sent by each pi slave node. Φ(m, pi, P ) = P ∗ P i=1 Γ(m,pi,Ω) Γ(m,pi,Ω) P i=1 P i=1 Γ(m,pi,Ω) Γ(m,pi,Ω) (12) Γ(m, pi, Ω) (equation 13) specifies the average computing time of a segment in a node pi, considering the last Ω notifications of TE(m, pi, τ), which is the average computation time of τ work units (database segments) assigned by the master m to a slave pi. At the moment of computation of Γ, if there is not enough notifications of TE, the calculation is done with total k notifications already received. Γ(m, pi, Ω) = min(Ω,k) j=1 T E(m, pi, τ) min(Ω, k) (13) 5.3 PackageBLAST"s General Architecture PackageBLAST was designed as a grid service over Globus 3, based on Web Services and Java. Figure 3 presents the PackageBLAST architecture. BLAST receives MASTER Strategies Allocation Work units Generate Work Units Distribute Reports Generate work units (to slaves)reports searches Figure 3: PackageBLAST architecture. The module Allocation Strategies contains implementations for the pre-defined allocation policies (Fixed, SS, GSS, TSS and FAC2) and also makes possible the creation of new allocation strategies. The module Generate Work Units is the core of the PSS mechanism. It calculates the weight of each slave node and decides how many work units will be assigned to a particular slave node, according to the chosen allocation policy. Distribute Work Units is the module responsible for the communication between the master and slaves nodes. It distributes the work units generated by the previous module and collects the notifications. Finally, the module Generate Reports obtains the intermediary outputs sent by the slave nodes through file transfer and merges them into a single BLAST output report. In general, the following execution flow is executed. The user specifies the sequence to be compared and chooses the allocation strategy. The master node starts execution and waits for slave connections. To start processing, a minimum number of slaves must register into the master node, by calling a master grid service. After receiving connections from the slaves, the master notifies them about their initial segments to compare. The slave processes τ database segments and notifies the master, which uses the last Ω notifications to compute the next allocation block size based on the selected allocation strategy and the weight provided by PSS. Then, the master sends a XML message to the slave informing its new segments to process. This flow continues until all segments are processed. 6. EXPERIMENTAL RESULTS PackageBLAST was evaluated in a 16-node grid testbed, composed by two laboratories, interconnected by a localarea network. Eleven desktops (P01-11) and a notebook (NB) were used in LABPOS and four desktops (L01-04) were used in LAICO (table 2). All grid nodes used Linux with Globus 3.2.1, NCBI BLAST 2.2.10 and Java VM 1.4.2. Table 2: Characteristics of the grid testbed. Node Names CPU Main Memory HD NB 3200 MHz 512 MB 80 GB L01-L03 1700 MHz 256 MB 30 GB L04 350 MHz 160 MB 6 GB P01-P10 1000 MHz 256 MB 20 GB P11 900 MHz 128 MB 20 GB To investigate the performance gains of PackageBLAST, we executed BLASTX in 2, 4, 8 and 16 grid nodes. Each BLAST search compared a 10KBP real DNA sequence against the 1.2GB nr genetic database segmented in 167 parts of 5MB each. Fixed, SS, TSS, GSS and FAC2 allocation strategies were employed in the tests. Execution times for all allocation strategies are presented in table 3. Table 3: Execution times for BLASTX. Strategy 2 nodes 4 nodes 8 nodes 16 nodes FIXED 2037 999 491 252 SS 1112 514 246 134 TSS 1296 570 259 143 GSS 1115 535 250 127 FAC2 1187 514 266 142 Table 4 presents execution times in a single machine and absolute speedups for 2, 4, 8 and 16 nodes, considering the best execution time for a given number of nodes. To calculate the absolute speedups, the BLAST sequential version was executed with the nr unsegmented database. Table 4: Sequential execution times and speedups. Node SeqTime 2 nodes 4 nodes 8 nodes 16 nodes NB 1432 1.29 2.79 5.82 11.28 L01 1585 1.43 3.08 6.44 12.48 P01 1853 1.67 3.61 7.53 14.59 P11 2004 1.80 3.90 8.15 15.78 L04 3810 3.43 7.41 15.49 30.00 PackageBLAST achieved very good speedups. Considering the worst (L04), average (P01) and best (NB) node in the grid, the speedups obtained were superlinear, close to linear and sublinear, respectively. In table 3, it can also be noticed that there is no allocation strategy that always reaches the best execution time. This variation justifies the allocation framework provided. To evaluate PSS, we executed PackageBLAST with 16 grid nodes, introducing local workload in nodes L01, L02, P01 and P02. The load was started simultaneously 30 seconds after the beginning of BLAST and consisted of the 159 execution of formatdb on the nr database. Three scenarios were simulated (table 5): 1) with PSS strategy, but without workload; 2) with PSS strategy and workload (PSS 2x), to use grid environment knowledge obtained in the preceeding iteration; and 3) Execution without PSS and with workload. Table 5: PSS evaluation with local workload. Gain is the comparison of without PSS with PSS 2x Strategy with PSS PSS 2x without PSS Gain Fixed 316 184 393 113.59% SS 186 177 179 1.13% TSS 160 162 171 5.56% GSS 149 159 339 113.21% FAC2 156 165 153 -7.27% As expected, the allocation strategies that assign a large amount of work to the nodes (fixed and GSS) obtained great benefit from using PSS. This is due to the fact that a slow node can easily become a bottleneck in these strategies. TSS also obtained a reduction of 5.56% in its execution time. PSS uses two parameters: τ and Ω (section 5.2). We varied these parameters in order to evaluate the PSS behavior in two scenarios. In both cases, we used a four-node (NB, L01, P01, L04) grid. In the first experiment, a local workload (formatdb) was introduced when the last task of the first TSS allocation starts and was stopped immediately after the processing of one segment. The goal was to evaluate the impact of short-lived local tasks in PSS. In the second case, local workload was introduced at the same time of the previous case, but continued until the end. The goal was to evaluate long-lived local tasks. Figure 4 presents the gains. Figure 4: Percentual gain obtained by PSS varying τ and Ω parameters. In scenario 1, when a very recent history is considered (τ=1 and Ω=1), PSS tries to adapt to a situation that will shortly disappear. For τ=5 and Ω=4, PSS takes longer to notice modification and short-lived tasks have low impact. On the other hand, in scenario 2, τ=1,Ω=1 presents better results than τ=5, Ω=4, because it changes weights faster. 7. CONCLUSION In this article, we proposed and evaluated PackageBLAST, an adaptive multi-policy grid service to execute master/slave BLAST searches. PackageBLAST contains a framework where the user can choose or incorporate allocation policies. We also defined a strategy, PSS, that adapts the chosen policy to a heterogeneous non-dedicated grid environment. The results collected by running PackageBLAST with 5 allocation policies in a grid testbed were very good. In order to compare a 10KBP real DNA sequence against the nr genetic database, we were able to reduce execution time from 30.88 min to 2.11 min. Also, we showed that, in our testbed, there is no allocation policy that always achieves the best performance and that makes evident the importance of providing multiple policies. Moreover, we showed that the introduction of PSS led to very good performance gains for some policies. As future work, we intend to run PackageBLAST in a geographically dispersed grid, to evaluate the impact of high network latencies in the allocation policies and in PSS. Also, we intend to provide support for genomic database synchronization and dynamic join/leave operations for slaves. 8. REFERENCES [1] S. F. Altschul, W. Gish, W. Miller, E. W. Myers, and D. J. Lipman. A basic local alignment search tool. Journal of Molecular Biology, 215:403-410, 1990. [2] A. Darling, L. Carey, and W. Feng. The design, implementation, and evaluation of mpiblast. 4th International Conference on Linux Clusters, 2003. [3] S. F. A. et al. Gapped blast and psi-blast: a new generation of protein database search programs. Nucleic Acids Research, 25(17):3389-3402, 1997. [4] I. Foster and C. Kesselman. Globus: A metacomputing infrastructure toolkit. International Journal of Supercomputer Applications, 11(2):115-128, 1997. [5] I. Foster and C. Kesselman. The Grid: Blueprint of a Future Computing Infrastructure. Morgan-Kauffman, 1999. [6] W. Gish. Washington university blast. http://blast.wustl.edu, 1996-2002. [7] D. Gusfield. Algorithms on Strings, Trees and Sequences. Cambridge University Press, 1997. [8] S. F. Hummel, E. Schonberg, and L. E. Flynn. Factoring: A method for scheduling parallel loops. Communications of the ACM, 35(8):90-101, 1992. [9] A. Krishnan. Gridblast: High throughput blast on the grid. Symposium on Biocomputing, January 2003. [10] D. Peng., W. Yan, and Z. Lei. Parallelization of blast++. Technical report, Singapore-MIT, 2004. [11] C. D. Polychronopoulos and D. J. Kuck. Guided self-scheduling: A practical scheduling scheme for parallel supercomputers. IEEE Transactions on Computers, 36(12):1425-1439, Dec. 1987. [12] M. K. Satish and R. R. Joshi. Gbtk: A toolkit for grid implementation of blast. 7th International Conference HPCAsia, pages 378-382, 2004. [13] G. Shao. Adaptive Scheduling of Master/Worker Applications on Distributed Computational Resources. PhD thesis, Univ. California at San Diego, 2001. [14] T. Smith and M. Waterman. Identification of common molecular subsequences. J. Mol. Biol., 147:195-197, 1981. [15] P. Tang and P. C. Yew. Processor self-scheduling for multiple nested parallel loops. In Int. Conf. on Parallel Processing (ICPP), pages 528-535, 1986. [16] T. H. Tzen and L. M. Ni. Trapezoidal self-scheduling: A practical scheme for parallel compilers. IEEE Transactions on Parallel and Distributed Systems, 4(1):87-98, Jan. 1993. 160

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

package weighted adaptive self-scheduling

biological sequence comparison
task allocation
blast search
packageblast
grid computing
computational biology
grid environment
pss