Telecommunication

Service

Provisioning

and

AI

Colin

Tattersall

Sandra

Oudshoff

Jacob

PTT

Research

P.O.

BOX

CD

Groningen

The

Netherlands

Paul

O'Brien

Robert

Davison

BT

Labs

Martlesham

Heath

Suffolk

UK

Mark

Tierney

Broadcom

Eireann

Research

Ltd.

Kestrel

House

Clanwilliam

Place

Dublin

Ireland

Editor?s

Note

for

Committee

Please

find

a

contribution

from

the

DESSERT

project

for

IJCAI

If

needed

we

can

add

some

valuable

comments

-LRB-

in

particular

potential

end-user

reactions

-RRB-

from

public

demonstrations

and

presentations

The

editor?s

feel

that

this

inclusion

would

be

advantageous

if

this

is

inline

with

the

goals

of

the

workshop

Abstract

The

complexity

and

diversity

of

communication

services

are

increasing

dramtically

as

a

result

of

broadband

network

technology

and

growing

network

intelligence

This

presents

a

major

challenge

for

telecomunication

service

providers

how

to

engineer

service

provisioning

processes

that

are

able

to

match

the

changing

range

of

service

and

networks

with

customer

's

demands

whilst

meeting

their

own

business

needs

It

is

argued

that

the

support

systems

needed

for

telecommunication

service

provisioning

require

more

than

conventional

software

technology

but

require

the

use

of

advanced

software

techniques

including

those

drawn

from

the

field

of

Artificial

Intelligence

-LRB-

AI

-RRB-

The

project

has

built

Decision

Support

Systems

-LRB-

DSSs

-RRB-

that

apply

a

mixture

of

AI-based

and

Operations

Research

-LRB-

OR

-RRB-

technology

to

problems

within

service

provisioning

This

paper

presents

the

results

and

experiences

gained

in

the

DESSERT

-LRB-

-RRB-

project

A

strength

of

the

DESSERT

project

has

been

to

successfully

combine

diverse

Advanced

Information

Processing

-LRB-

AIP

-RRB-

techniques

to

provide

decision

support

for

the

provision

of

services

Please

use

the

following

address

for

e-mail

discussions

j.c.groote@research.ptt.nl

The

research

reported

in

this

article

was

carried

out

within

RACE

II

project

DESSERT

-LRB-

DEcision

Support

systems

in

SERvice

managemenT

-RRB-

Partners

in

the

project

were

Broadcom

Eireann

-LRB-

IRL

-RRB-

PTT

Research

-LRB-

NL

-RRB-

Sema

Group

Telecom

-LRB-

F

-RRB-

the

departments

of

Computer

Science

and

Electrical

Engineering

of

Queen

Mary

and

Westfield

College

-LRB-

UK

-RRB-

British

Telecom

-LRB-

UK

-RRB-

Framentec-Cognitech

-LRB-

F

-RRB-

Inform

GmbH

-LRB-

D

-RRB-

Trinity

College

Dublin

and

Dublin

City

University

-LRB-

IRL

-RRB-

The

work

was

partially

funded

by

the

European

Commission

A

short

introduction

on

DESSERT

and

an

overview

over

the

results

of

the

project

can

be

found

at

the

following

URL

Introduction

Service

Provisioning

One

of

the

most

important

demands

on

telecommunication

service

providers

is

responsiveness

to

fulfilling

customer

needs

Service

providers

face

the

challenge

of

delivering

customised

service

solutions

competitive

pricing

short

delivery

periods

and

a

high

quality

of

service

A

service

provider

must

strive

to

achieve

the

best

exploitation

of

resources

-LRB-

personnel

and

equipment

-RRB-

Service

provisioning

is

a

process

that

starts

with

the

identification

of

some

customer

need

and

completes

when

services

have

been

delivered

to

that

customer

for

use

It

includes

activities

such

as

capturing

customer

requirements

selecting

services

to

meet

those

requirements

and

identifying

and

configuring

the

network

equipment

necessary

to

support

a

set

of

services

The

speed

and

quality

of

the

provisioning

process

is

key

to

the

success

of

a

provider

which

already

involves

considerable

data

and

requires

computer

support

Service

provisioning

requires

a

combination

of

human

judgement

and

computing

power

Human

judgement

to

select

a

solution

that

best

meets

the

customers

requirements

and

the

business

objectives

of

the

service

provider

Computing

power

to

deal

with

the

large

quantities

of

information

needed

to

manage

today

's

networks

and

services

It

is

already

a

highly

knowledge-intensive

process

requiring

understanding

of

customer

businesses

of

the

service

provider

's

product

portfolio

of

the

capabilities

of

the

service

provider

's

network

and

of

the

configuration

of

that

network

Currently

it

is

a

process

relying

upon

the

knowledge

of

provider

personnel

with

minimal

computer

support

Changes

in

the

telecommunication

domain

are

adding

further

complication

to

the

service

provisioning

process

The

arrival

of

market

liberalisation

in

the

telecommunications

market

means

that

service

providers

must

maintain

competitiveness

A

major

differentiator

between

providers

will

be

how

efficiently

they

can

use

their

resources

to

provide

the

right

services

to

the

customer

The

advent

of

broadband

and

intelligent

networks

introduce

a

greater

level

of

complexity

to

the

resourcing

and

configuring

of

technology

to

support

communications

services

In

a

global

multi-vendor

market

providers

will

provision

services

that

are

supported

by

other

provider

's

networks

This

places

additional

demands

on

service

provider

staff

who

will

need

to

understand

the

capabilities

of

those

networks

as

well

as

their

own

Increasing

bandwidth

combined

with

the

merging

of

computation

and

communication

is

resulting

in

a

far

greater

range

of

services

being

available

-LRB-

particularly

entertainment-based

-RRB-

The

modern

service

portfolio

will

contain

thousands

of

service

offerings

which

can

be

tailored

to

customers

needs

placing

a

greater

burden

on

staff

and

systems

to

keep

up

with

change

Customers

are

demanding

more

personalised

services

and

are

demanding

faster

response

times

Increased

competition

allows

customer

's

to

be

more

discerning

where

speed

of

response

will

be

a

crucial

factor

in

their

choice

These

changes

place

additional

requirements

on

the

skills

and

capabilities

of

service

providers

staff

and

their

systems

The

complexity

and

scale

of

the

problem

faced

during

service

provisioning

demands

powerful

and

intelligent

decision

support

Decision

Support

The

DESSERT

project

has

investigated

the

application

of

Decision

Support

Systems

-LRB-

DSSs

-RRB-

to

the

process

of

service

provisioning

A

premise

of

the

DESSERT

project

has

been

that

DSSs

are

to

enable

these

changes

in

the

service

provisioning

process

then

the

technologies

drawn

from

Artificial

Intelligence

-LRB-

AI

-RRB-

will

be

a

vital

component

Intelligent

support

is

required

to

both

complement

the

knowledge

of

service

providers

staff

as

well

as

handle

the

complexity

of

certain

sub-tasks

within

the

provisioning

process

Additionally

due

to

the

rapid

changes

the

industry

is

currently

facing

such

systems

have

to

be

flexible

and

extensible

In

such

an

increasingly

complex

domain

as

service

provisioning

it

is

necessary

to

utilise

the

users

ability

to

the

full

and

to

supplement

this

with

powerful

computing

tools

which

support

the

user

in

a

decision

making

process

However

solutions

to

problems

in

such

a

domain

will

require

an

integration

of

different

types

of

knowledge

For

example

certain

aspects

of

the

problem

may

be

solved

through

the

application

of

well-known

optimisation

algorithms

Other

parts

of

the

problem

may

also

lead

to

that

are

beyond

the

scope

of

such

techniques

requiring

approaches

that

are

more

heuristic

than

algorithmic

in

nature

Moreover

effective

DSSs

must

also

possess

a

significant

body

of

linguistic

and

presentation

knowledge

to

interact

with

the

user

and

reasoning

knowledge

to

exhibit

intelligent

behaviour

The

approach

DESSERT

has

taken

to

achieve

decision

support

for

service

provisioning

is

to

combine

diverse

Advanced

Information

Processing

-LRB-

AIP

-RRB-

techniques

under

the

following

classification

-LRB-

successful

DSSs

will

be

a

hybrid

of

a

number

of

techniques

together

-RRB-

Models/Information

Bases

to

contain

the

information

and

knowledge

about

the

structure

and

behaviour

of

the

service

provisioning

domain

The

information

model

is

designed

to

support

tools

and

techniques

drawn

from

both

Operations

Research

-LRB-

OR

-RRB-

and

symbolic

reasoning

Knowledge-Based

System

-LRB-

KBS

-RRB-

techniques

Applied

Operations

Research

-LRB-

OR

-RRB-

for

objective

reasoning

in

solving

well

defined

sub

problems

For

example

OR

has

successfully

solved

a

wide

variety

of

real

world

telecommunication

problems

-LSB-

Gavish

-RSB-

e.g.

the

optimal

design

of

telecommunication

networks

in

the

face

of

uncertain

demand

Knowledge-Based

System

-LRB-

KBS

-RRB-

Problem

Solving

techniques

for

symbolic

reasoning

where

information

is

scarce

For

example

the

human-style

subjective

and

qualitative

nature

of

KBS

has

been

used

in

a

variety

of

telecommunication

fields

-LSB-

see

Williamson

-RSB-

including

fault

isolation/diagnosis

and

network

configuration

Problem

Solving

Control

-LRB-

PSC

-RRB-

techniques

to

provide

efficiency

when

solving

a

problem

i.e.

for

organising

the

reasoning

steps

and

the

knowledge

to

construct

a

solution

to

a

problem

Using

a

flexible

and

evolvable

approach

-LRB-

e.g.

based

on

a

blackboard

model

-RRB-

will

enable

the

inter-working

of

a

wide

variety

of

well

understood

newer

state

of

the

art

techniques

Human

Computer

Interaction

-LRB-

HCI

-RRB-

in

support

of

effective

human

decision

making

DSSs

and

HCI

go

hand

in

hand

Using

graphic

facilities

and

providing

multiple

views

on

to

the

problem

is

necessary

for

decision

support

since

humans

can

judge

and

absorb

visual

information

much

faster

as

a

result

of

the

strict

and

quantitative

character

of

optimisation

-LRB-

OR

-RRB-

algorithms

The

objective

of

such

an

approach

enables

the

inter-working

of

a

wide

variety

of

well

understood

newer

state

of

the

art

techniques

within

a

single

unifying

framework

The

fields

of

OR

and

KBS

both

address

problem

solving

and

decision

making

but

yet

they

have

historically

progressed

in

isolation

-LSB-

Raghavan

-RSB-

KBS

techniques

have

emphasised

the

use

of

strategies

associated

with

human

behaviour

whilst

OR

has

emphasised

optimal

strategies

using

mathematics

-LRB-

both

fields

provide

methods

that

can

be

applied

in

the

service

provisioning

domain

-RRB-

It

is

envisaged

that

the

synergy

of

these

techniques

will

provide

powerful

decision

support

The

main

benefits

are

facilitating

and

improving

the

quality

of

decision

making

by

reducing

the

information

overload

and

by

augmenting

the

cognitive

limitations

and

rationality

bounds

of

decision

makers

Customer

Requirements

Capture

DSS

Support

for

engineering

requirements

has

not

received

the

level

of

attention

within

the

telecommunications

world

that

it

has

attracted

in

other

branches

of

the

IT-community

The

software

engineering

community

has

placed

much

effort

into

exploiting

emerging

software

technologies

within

requirements

engineering

-LRB-

see

for

example

-LSB-

Kramer

-RSB-

-LSB-

Czuchry

-RSB-

and

more

recently

-LSB-

Mylopoulos

-RSB-

-LSB-

Jarke

-RSB-

-RRB-

In

contrast

telecommunications

sales

consultants

use

pen

and

paper

during

interviews

with

customers

and

word-processing

facilities

in

the

office

to

produce

reports

Typically

client

databases

are

maintained

which

record

details

of

customer

contacts

including

the

names

of

participants

and

the

dates

of

meetings

Although

research

has

begun

to

examine

the

use

of

advanced

information

processing

techniques

in

the

management

and

operation

of

telecommunication

services

-LRB-

see

-LSB-

Silva

-RSB-

-LSB-

Houghton

-RSB-

-RRB-

the

bulk

of

work

in

provisioning

views

negotiation

either

as

revolving

around

technical

issues

-LSB-

Malek

-RSB-

-LSB-

Hines

-RSB-

or

as

proceeding

on

the

Service

Provider

's

terms

-LSB-

Acosta

-RSB-

Effective

provisioning

revolves

around

the

identification

of

appropriate

services

derived

from

an

understanding

of

the

customer

's

situation

Greenspan

's

recent

work

-LSB-

Greenspan

-RSB-

is

one

of

the

first

attempts

to

highlight

Service

Providers

need

for

tool

support

at

the

level

of

enterprise

and

workflow

modelling

The

Customer

Requirements

Capture

-LRB-

CRC

-RRB-

DSS

-LSB-

Tattersall

-RSB-

developed

in

DESSERT

is

designed

to

be

taken

by

a

sales

consultant

to

a

customer

site

for

use

within

the

negotiations

with

that

client

The

primary

dialogue

between

the

sales

consultant

and

the

client

is

at

the

heart

of

the

selling

process

The

importance

of

good

person-to-person

communication

within

sales

can

not

be

underestimated

and

although

one

scenario

might

see

the

customer

directly

interacting

with

the

DSS

we

believe

that

the

primary

dialogue

between

consultant

and

customer

will

exist

for

the

foreseeable

future

Few

tools

are

currently

available

to

support

sales

staff

Although

simple

administrative

systems

exist

these

offer

little

help

for

the

complexity

of

service

provisioning

In

this

respect

the

CRC

DSS

is

an

innovative

solution

to

a

problem

which

is

currently

taxing

telecommunications

service

providers

It

illustrates

many

innovative

concepts

concerning

the

use

of

DSSs

in

requirements

capture

during

service

provisioning

both

from

a

service

provider

and

customer

perspective

The

CRC

DSS

has

generated

significant

interest

from

the

service

providers

in

the

DESSERT

consortium

The

main

features

are

More

customer

information

captured

and

processed

at

each

stage

of

the

processing

of

a

communication

need

More

and

better

support

to

the

user

as

well

as

the

customer

due

to

the

incorporation

of

a

well

structured

model

of

the

services

in

the

service

providers

portfolio

and

the

gathering

and

presentation

of

more

information

useful

to

both

sales

person

and

customer

-LRB-

e.g.

cost

aspects

-RRB-

Improved

quality

of

support

by

the

system

arising

from

more

exploitation

of

AIP

techniques

-LRB-

e.g.

semantic

analysis

matching

algorithms

and

fuzzy

set

theory

-RRB-

and

due

to

enhanced

Human

Computer

Interaction

Improved

flexibility

given

to

the

user

through

integration

of

a

blackboard

model

The

CRC

demonstrator

has

generated

significant

interest

for

its

potential

downstream

use

in

service

provisioning

a

comparable

level

of

support

is

not

available

to

service

providers

within

existing

systems

Given

that

much

of

the

information

in

the

service

provisioning

domain

is

implicit

and

unclear

to

the

participants

the

focus

of

the

research

has

centred

on

the

use

of

Knowledge-Based

Systems

-LRB-

KBS

-RRB-

methods

-LRB-

for

the

representation

and

manipulation

of

information

-RRB-

and

Human

Computer

Interaction

-LRB-

HCI

-RRB-

techniques

-LRB-

for

the

communication

and

presentation

of

information

-RRB-

Service

Network

Resource

Assignment

DSS

In

organising

a

service

for

a

customer

a

number

of

network

and

service

resources

must

be

assigned

to

offer

the

new

service

with

the

appropriate

quality

of

service

To

date

there

have

been

few

decision

support

tools

to

aid

in

this

process

In

fact

a

substantial

amount

of

service

provisioning

has

traditionally

been

a

pen

paper

exercise

and

has

consumed

much

time

and

personnel

resources

The

computer

solutions

that

do

exist

are

generally

constructed

based

on

a

singular

type

of

technique

and

are

also

dedicated

to

support

the

assignment

of

one

kind

of

network

resource

-LRB-

e.g.

ISDN

-RRB-

only

The

effort

involved

in

assigning

these

resources

will

be

considerable

considering

the

scale

and

diversity

of

the

network

which

is

supported

by

numerous

technologies

and

the

multiplicity

of

services

that

is

expected

The

availability

of

decision

support

will

aid

the

personnel

and

increase

their

effectiveness

and

flexibility

in

being

enabled

to

work

with

diverse

resources

of

many

different

network

technologies

The

Generation

Selection

of

Alternative

Configurations

-LRB-

GSAC

-RRB-

DSS

-LSB-

Tierney

-RSB-

developed

in

DESSERT

is

designed

to

support

telecommunication

engineers

to

assign

service

and

network

resources

from

diverse

network

technologies

offering

different

capabilities

or

characteristics

The

system

helps

to

identify

and

assign

the

necessary

network

and

service

resources

that

satisfy

both

the

customer

's

and

provider

's

requirements

The

need

for

decision

support

arises

from

the

complexity

of

the

resource

assignment

process

diverse

network

and

service

technologies

company

policy

and

practice

various

manufacturer

equipment

commercial

preferences

the

required

customer

service

etc.

The

GSAC

DSS

is

an

innovative

solution

to

a

complex

problem

improving

the

rapid

provisioning

of

accurate

technical

solutions

The

availability

of

decision

support

will

help

telecommunications

personnel

and

increase

their

effectiveness

and

flexibility

in

being

enabled

to

work

with

diverse

resources

of

many

different

network

technologies

The

GSAC

approach

successfully

supports

a

much

more

efficient

use

of

resources

by

the

service

provider

as

it

enables

those

provisioning

tasks

related

to

resource

assignment

to

be

undertaken

taking

account

of

a

multiple

network

and

service

environment

The

main

features

are

An

integrated

and

consistent

support

system

addressing

a

wide

breadth

of

resource

assignment

tasks

at

transit

access

and

service

levels

-LRB-

for

example

MAN

X.

ISDN

and

IN

-RRB-

A

combination

of

Operations

Research

-LRB-

OR

-RRB-

and

Knowledge-Based

System

-LRB-

KBS

-RRB-

techniques

OR

can

be

beneficially

combined

with

simple

KBS

heuristics

to

speed

computation

in

cases

where

there

are

a

large

number

of

decision

variables

and

constraints

Good

graphical

interfaces

to

support

the

user

in

generating

the

resource

assignment

solution

by

providing

multiple

views

onto

the

problem

Unique

computer

aided

support

for

a

task

traditionally

time

consuming

and

pen

paper

based

No

existing

systems

on

the

market

tackle

the

problem

of

resource

assignment

in

the

integrated

and

consistent

way

that

GSAC

does

An

improved

flexible

and

evolvable

architecture

for

integrating

a

diverse

range

of

tools

and

techniques

using

a

blackboard

model

-LSB-

Nii

-RSB-

Service

Provisioning

from

an

AI

perspective

The

use

of

AI

for

sales

support

has

been

investigated

in

previous

work

-LSB-

McDermott

-RSB-

-LSB-

Houghton

-RSB-

and

our

research

underlines

a

number

of

ties

between

the

sales

process

and

AI

techniques

negotiation

selling

is

essentially

a

process

of

negotiation

and

trade-off

of

building

and

using

a

model

of

someone

else?s

needs

Not

only

does

this

point

to

the

use

of

dialogue

support

techniques

but

also

to

the

central

role

of

representations

in

selling

The

close

relationship

between

requirements

engineering

and

knowledge

acquisition

has

been

noted

elsewhere

-LSB-

Eriksson

-RSB-

translation

moving

from

the

client?s

needs

to

services

and

critically

back

again

has

similarities

with

the

machine

translation

process

and

relies

upon

the

use

of

intermediate

representations

matching

at

the

heart

of

service

provisioning

is

a

matching

process

which

service

best

suits

the

clients

telecommunications

needs

constraints

achieving

a

match

between

the

client?s

business

needs

and

service

providers

offerings

is

only

half

of

the

equation

Solutions

must

also

be

realised

within

the

constraints

of

the

customer

principally

cost

and

time

Similar

observations

are

made

by

Fickas

and

Nagarajan

-LSB-

Fickas

-RSB-

The

use

of

AI

for

resource

assignment

would

falls

under

the

classification

of

configuration

problems

Configuration

as

it

is

interpreted

in

the

AI

literature

is

essentially

the

business

of

determining

what

equipment

a

customer

needs

to

perform

a

particular

task

and

organising

that

equipment

so

that

it

constitutes

a

complete

working

system

and

so

that

it

may

easily

be

assembled

The

problem

is

that

since

most

of

the

published

work

on

configuration

has

been

on

configuring

computer

systems

there

is

a

difficulty

in

seeing

exactly

what

is

required

in

a

telecommunications

configurer

A

rule-based

approach

can

be

considered

for

service

and

network

configuration

tasks

Rulebased

reasoning

was

previously

effectively

demonstrated

for

configuring

computer

hardware

-LRB-

e.g.

J.

McDermott?s

-RRB-

DESSERT?s

experience

suggests

that

forward

chaining

rule

bases

are

suitable

for

expressing

expertise

about

linking

and

dimensioning

telecommunications

service

and

network

components

Although

rule-based

reasoning

is

now

a

mature

technology

DESSERT?s

experience

suggests

that

the

breadth

of

service

provisioning

tasks

call

for

the

combined

power

of

rule

based

and

other

knowledge-based

methods

as

well

as

Operations

Research

techniques

A

case-based

approach

can

be

considered

when

developing

telecommunications

service

provisioning

systems

Case-Based

Reasoning

-LSB-

Rissland

-RSB-

fits

well

into

the

decision

support

paradigm

due

to

the

way

in

which

tasks

are

partitioned

between

user

and

machine

In

the

best

examples

of

CBR

systems

the

computer

performs

searching

comparison

and

matching

operations

without

over

processing

the

results

thus

allowing

the

user

to

exercise

their

judgement

about

information

which

is

presented

at

an

appropriate

level

of

abstraction

The

ability

of

CBR

systems

to

handle

effectively

both

symbolic

and

numeric

information

in

an

integrated

manner

corresponds

well

with

the

service

provisioning

need

for

dealing

with

both

technical

and

non

technical

information

in

combination

This

is

particularly

true

for

systems

which

span

the

boundary

between

customer

and

service

provider

domains

AI

techniques

such

as

rule-based

reasoning

and

case-based

reasoning

enable

the

encoding

and

utilisation

of

the

knowledge

necessary

to

perform

a

number

of

service

provisioning

tasks

However

solutions

to

problems

in

service

provisioning

or

the

telecommunications

domain

should

not

based

on

one

technique

alone

Other

AI

techniques

such

as

constraint

satisfaction

and

propagation

as

well

as

newer

techniques

like

genetic

algorithms

and

neural

networks

can

be

convincingly

applied

to

various

problems

in

this

domain

Discussion

The

explosive

growth

in

the

field

of

telecommunications

has

created

an

opportunity

for

impacts

from

decision

support

technology

Changes

currently

taking

place

in

the

telecommunications

industry

in

terms

of

increased

competition

and

new

services

mean

that

various

players

are

in

need

of

new

computer-based

support

Already

a

number

of

major

public

network

operators

are

examining

their

business

processes

and

how

computer

support

systems

are

-LRB-

and

can

be

-RRB-

deployed

to

enhance

their

effectiveness

New

entrants

into

the

telecommunications

markets

already

recognise

the

benefit

of

effective

support

system

deployment

in

streamlining

the

provisioning

process

DESSERT

has

illustrated

through

its

DSS

prototypes

how

the

application

of

decision

support

technology

is

an

important

element

in

making

key

parts

of

service

management

more

efficient

The

project

has

already

had

an

impact

within

our

partner

organisations

by

acting

as

an

eyeopener

for

what

can

be

achieved

with

the

focused

use

of

AI

and

OR

techniques

in

an

area

traditionally

seen

as

unsupportable

DESSERT

's

exploration

of

the

applicability

of

a

wide

range

of

AI

and

OR

techniques

will

prove

to

be

beneficial

in

developing

DSSs

in

the

telecommunications

industry

Experience

has

been

gained

both

with

mature

and

state

of

the

art

techniques

Of

particular

note

has

been

the

success

in

the

application

of

OR

and

KBS

techniques

in

combination

-LRB-

where

appropriate

-RRB-

A

major

benefit

foreseen

is

that

the

results

gained

from

our

techniques

work

can

also

be

applied

to

different

areas

of

TMN

service

management

besides

service

provisioning

DESSERT

's

good

experiences

can

be

used

to

promote

the

uptake

of

these

OR

and

KBS

techniques

It

is

clear

from

the

reaction

to

the

DESSERT

work

both

at

internal

and

external

presentations

and

demonstrations

that

the

approaches

DSSs

and

techniques

which

are

advocated

by

DESSERT

are

timely

in

the

context

of

the

changing

telecommunications

environment

for

service

providers

There

is

considerable

evidence

that

new

and

existing

service

providers

are

now

seeking

well-engineered

support

systems

in

the

areas

of

customer

care

and

rapid

service

provisioning

Conclusions

The

research

presented

in

this

paper

has

illustrated

how

the

application

of

decision

support

technology

is

a

key

element

in

making

the

provisioning

of

services

more

efficient

An

important

characteristic

of

the

DESSERT

approach

is

the

combination

of

AI

and

OR

techniques

being

effectively

applied

in

the

development

of

such

DSSs

in

the

field

of

telecommunications

The

explosive

growth

in

the

field

of

telecommunications

has

created

an

important

opportunity

for

impacts

from

decision

support

technology

The

results

of

this

paper

illustrate

and

reinforce

the

argument

that

the

application

of

advanced

computer

techniques

-LRB-

namely

AI

and

OR

-RRB-

are

vital

support

tools

in

this

area

Acknowledgments

We

would

like

to

acknowledge

the

support

of

the

various

people

associated

with

the

DESSERT

project

all

of

whom

have

contributed

to

the

project

's

results

DESSERT

is

a

RACE

II

project

partly

funded

by

the

Commission

of

the

European

Communities

DG

XIII

Telecommunications

Information

Industries

and

Innovation

References

Acosta

E.

A

Personal

Computer

Prototype

to

Support

ISDN

Service

Negotiations

In

Proceedings

of

ICC

IEEE

Czuchry

A.

J.

Jr.

and

Harris

D.

R.

KBRA

A

New

Paradigm

for

Requirements

Engineering

IEEE

Expert

pages

Winter

Eriksson

H.

A

Survey

of

Knowledge

Acquisition

Techniques

and

Tools

and

their

Relationship

to

Software

Engineering

Journal

of

Systems

Software

pg

Fickas

S.

and

Nagarajan

P.

Critiquing

Software

Specifications

IEEE

Software

pg

Nov.

Gavish

B.

-LRB-

Ed

-RRB-

Operations

Research

in

Telecommunications

Annals

of

OR

Baltzer

Scientific

Publishing

Basel

Greenspan

S.

and

Flebowitz

M.

Requirements

Engineering

Using

the

SOS

Paradigm

In

Proceedings

of

the

IEEE

International

Symposium

on

Requirements

Engineering

pages

IEEE

Computer

Society

Press

Hines

W.

J.

and

E.

L.

Trends

in

the

automation

of

service

provisioning

IEEE

Journal

on

Selected

Areas

in

Communications

-LRB-

-RRB-

May

Houghton

T.

Gardner

M.

and

Gould

P.

Escfe

Expert

system

for

customer

facing

environments

IEEE

Journal

on

Selected

Areas

in

Communications

-LRB-

-RRB-

Jarke

M.

Bubenko

J.

Rolland

C.

Sutcliffe

A.

and

Vassiliou

Y.

Theories

Underlying

Requirements

Engineering

An

Overview

of

NATURE

at

Genesis

In

Proceedings

of

the

First

International

IEEE

Symposium

on

Requirements

Engineering

IEEE

Kramer

J.

Ng

K.

Potts

C.

and

Whitehead

K.

Tool

Support

for

Requirements

Analysis

Software

Engineering

Journal

pages

May

Nii

H.

P.

Blackboard

systems

-LRB-

Part

I

-RRB-

The

blackboard

model

of

problem

solving

and

the

evolution

of

blackboard

architectures

The

AI

Magazine

pp

Summer

Malek

M.

and

Sotomayor-Diaz

O.

On-line

provisioning

of

network

services

IEEE

Journal

on

Selected

Areas

in

Communications

-LRB-

-RRB-

May

McDermott

J.

XSEL

A

Computer

Sales

Person?s

Assistant

Machine

Intelligence

pp

Mylopoulos

J.

Chung

L.

Yu

E.

and

Nixon

B.

Requirements

Engineering

Selected

Papers

Technical

Report

University

of

Toronto

Raghavan

S.

A.

JANUS

A

paradigm

for

active

decision

support

Decision

Support

Systems

pp

Rissland

E.

L.

and

Shank

D.

B.

Combining

cased-based

reasoning

and

rule-based

reasoning

A

heuristic

approach

Proceedings

of

Joint

Conference

on

Artificial

Intelligence

San

Mateo

CA

Morgan

Kaufmann

Pub.

Inc.

Silva

L.

da

Implementation

of

management

applications

for

network

customer

administration

systems

In

Smith

Mamdani

and

Callaghan

editors

The

Management

of

Telecommunications

Networks

Ellis

Horwood

Tattersall

C.

Braux

H.

et

al.

Helping

Consultants

Helping

Customers

Decision

Support

for

Requirements

Engineering

during

Service

Provisioning

DESSERT

RACE

II

-LRB-

-RRB-

Deliverable

Tierney

M.

and

Davison

R

Decision

Support

for

the

Provision

of

Services

Integrating

Knowledge-Based

and

Optimisation

Techniques

for

Resource

Assignment

DESSERT

RACE

II

-LRB-

-RRB-

Deliverable

Williamson

G.

et

al

Using

KBS

in

Telecommunications

ESPRIT

Achievements

and

Impacts

Part

I

North

Holland

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

artificial intelligence
customer requirements capture
decision support systems
operations research
provisioning
resource assignment
telecommunications


LIPLaboratoire

de

l'Informatique

du

Parall?lisme

Ecole

Normale

Sup?rieure

de

Lyon

Unit

de

recherche

associ?e

au

CNRS

n

Validation

de

la

compilation

des

boucles

while

Data-Parallel

C

sur

des

architectures

a

m?emoire

partag?ee

Gil

Utard

Mars

Research

Report

No

Ecole

Normale

Sup?rieure

de

Lyon

Adresse

lectronique

lip@lip.ens-lyon.fr

T?l?phone

-LRB-

-RRB-

T?l?copieur

-LRB-

-RRB-

All?e

d'Italie

Lyon

Cedex

France

Validation

de

la

compilation

des

boucles

while

Data-Parallel

C

sur

des

architectures

a

m?emoire

partag?ee

Gil

Utard

Mars

Abstract

This

report

focuses

on

the

compilation

of

the

while

loops

in

data-parallel

languages

for

MIMD

Shared

Memory

architectures

An

efficient

compilation

must

decrease

the

number

of

global

synchronizations

due

to

dependencies

We

validate

an

optimization

suggested

by

Hatcher

and

Quinn

for

the

DPC

language

It

consists

in

splitting

the

original

loop

into

two

loops

one

computation

loop

without

any

additional

control

dependencies

and

one

waiting

loop

to

assure

termination

Computation

loop

's

body

presents

a

minimal

number

of

global

synchronizations

We

study

informaly

its

correction

proof

and

give

the

methodology

leading

of

its

conception

The

formal

proof

is

based

on

the

axiomatic

semantics

of

Owiki

and

Gries

We

give

an

axiomatization

of

the

global

synchronization

statement

and

specify

which

are

the

sufficient

conditions

for

a

non-deadlocking

execution

In

Hatcher

and

Quinn

's

solution

we

observe

that

the

waiting

loop

is

independant

of

the

computation

one

The

former

loop

absorbs

residual

synchronizations

of

any

parallel

program

We

conclude

by

presenting

a

modular

method

to

elaborate

parallel

programs

R?esum?e

Nous

etudions

la

compilation

des

boucles

while

des

langages

data-parall

eles

pour

les

architectures

MIMD

a

m?emoire

partag?ee

Une

compilation

efficace

doit

r?eduire

le

nombre

de

barri?eres

de

synchronisation

induites

par

les

d?ependances

Nous

validons

une

optimisation

propos?ee

par

Hatcher

et

Quinn

pour

le

langage

DPC

Elle

consiste

a

d?egager

une

boucle

de

calcul

sans

d?ependances

de

contr

ole

suppl?ementaires

et

une

boucle

d'attente

assurant

la

terminaison

Le

corps

de

la

boucle

de

calcul

contient

un

nombre

minimal

de

barri?eres

de

synchronisation

Nous

etudions

informellement

sa

correction

et

d?egageons

la

m?ethode

qui

a

permis

sa

conception

La

preuve

formelle

est

bas?ee

sur

la

s?emantique

axiomatique

d'Owiki

et

Gries

Nous

proposons

une

axiomatisation

de

la

barri?ere

de

synchronisation

et

d?erivons

des

conditions

suffisantes

de

non-blocage

Dans

la

solution

de

Hatcher

et

Quinn

nous

observons

que

la

boucle

d'attente

est

ind?ependante

de

la

boucle

de

calcul

et

permet

de

r?esoudre

un

probl?eme

plus

g?en?eral

l'absorption

des

synchronisations

r?esiduelles

des

programmes

parall?eles

Nous

en

d?eduisons

une

m?ethode

de

conception

modulaire

des

programmes

parall?eles

Mots-cl

es

programmation

parall?ele

langages

data-parall

eles

compilation

validation

des

sch?emas

de

compilation

s?emantique

axiomatique

Validation

de

la

compilation

des

boucles

while

Data-Parallel

C

sur

des

architectures

a

m?emoire

partag?ee

Gil

Utard

Mars

Table

des

mati?eres

Le

langage

Data

Parallel

C

et

sa

compilation

Compilation

des

boucles

while

data-parall

eles

Description

du

langage

cible

Boucles

while

avec

un

seul

point

de

d?ependance

Boucles

while

avec

deux

ou

plusieurs

points

de

d?ependance

R?esum?e

de

la

m?ethode

et

g?en?eralisation

Validation

de

programmes

parall?eles

V?erification

de

programmes

parall?eles

par

une

approche

axiomatique

Interblocage

et

preuve

de

non

interblocage

Absorption

des

synchronisations

Compilation

de

DPC

et

modularit?e

de

programmes

parall?eles

Retour

a

la

compilation

de

boucles

while

DPC

Compositionnalit?e

de

programmes

parall?eles

Conclusion

Introduction

On

assiste

actuellement

a

un

engouement

croissant

pour

les

langages

a

parall?elisme

de

donn?ees

Jusqu'alors

confin?e

a

la

programmation

des

machines

SIMD

ce

type

de

langage

se

lib?ere

de

son

origine

architecturale

et

peut

etre

consid?er?e

comme

un

mod?ele

de

programmation

a

part

enti?ere

-LSB-

-RSB-

La

preuve

en

est

le

formidable

effort

du

High

Performance

Fortran

Forum

pour

d?efinir

une

sp?ecification

d'un

langage

portable

de

la

station

de

travail

a

la

machine

massivement

parall?ele

-LSB-

-RSB-

Les

deux

grandes

caract?eristiques

des

langages

a

parall?elisme

de

donn?ees

sont

le

synchronisme

qui

permet

de

d?evelopper

et

de

mettre

au

point

les

applications

de

mani?ere

ais?ee

et

le

parall?elisme

explicite

qui

permet

d'appr

ehender

la

complexit?e

d'un

programme

par

le

concepteur

et

le

compilateur

Toute

la

puissance

des

langages

data-parall

eles

proviendra

de

compilateurs

capables

d'exploiter

au

mieux

les

architectures

cibles

C'est

la

voie

adopt?ee

par

Hyper

C

et

C

qui

proposent

une

compilation

sur

diff?erentes

architectures

Un

effort

important

doit

donc

etre

port?e

sur

la

g?en?eration

de

code

exploitant

au

mieux

le

mat?eriel

Dans

les

applications

scientifiques

l'effort

de

la

compilation

doit

se

porter

sur

les

boucles

C'est

l?a

en

g?en?eral

que

l'application

concentre

ses

calculs

Dans

leur

pr?esentation

du

langage

Data

Parallel

C

-LRB-

DPC

-LSB-

-RSB-

-RRB-

Hatcher

et

Quinn

proposent

une

m?ethode

de

compilation

originale

des

boucles

pour

les

machines

MIMD

a

m?emoire

partag?ee

Elle

minimise

le

nombre

de

barri?eres

de

synchronisation

dans

le

corps

de

la

boucle

de

calculs

L'objet

de

cette

note

est

de

d?emontrer

formellement

la

correction

de

cette

m?ethode

de

compilation

Dans

un

premier

temps

nous

pr?esentons

DPC

ainsi

que

le

processus

de

compilation

sur

architecture

a

m?emoire

partag?ee

Ensuite

nous

etudions

diff?erentes

transformations

possibles

de

la

compilation

de

boucles

DPC

en

SPMD

et

nous

d?ecrivons

incr?ementalement

la

solution

adopt?ee

par

Hatcher

et

Quinn

Ensuite

nous

rappelons

la

d?efinition

d'un

langage

parall?ele

asynchrone

a

m?emoire

partag?ee

d'Owiki

et

Gries

et

son

syst?eme

de

preuve

axiomatique

associ?e

Nous

y

introduisons

une

axiomatisation

de

la

barri?ere

de

synchronisation

et

des

conditions

suffisantes

de

non-blocage

Nous

validons

formellement

le

sch?ema

de

compilation

de

Hatcher

et

Quinn

et

nous

montrons

que

leur

solution

r?esoud

un

probl?eme

plus

g?en?eral

l'absorbtion

des

synchronisations

r?esiduelles

d'un

programme

parall?ele

Nous

en

d?eduisons

une

m?ethode

de

conception

modulaire

des

programmes

parall?eles

Le

langage

Data

Parallel

C

et

sa

compilation

Comme

son

nom

l'indique

Data

Parallel

C

est

une

extension

du

langage

C

au

parall?elisme

de

donn?ees

tout

comme

mpl

sur

la

maspar

-LSB-

-RSB-

ou

Hyper

C

-LSB-

-RSB-

Ce

langage

correspond

historiquement

aux

premi?eres

versions

de

C

-LRB-

jusqu

a

la

version

-RRB-

sur

la

Connection

Machine

-LSB-

-RSB-

Dans

le

mod?ele

de

programmation

data-parall

ele

les

objets

de

base

sont

les

tableaux

dont

les

composantes

sont

accessibles

en

parall?ele

Deux

types

d'op

erations

peuvent

etre

appliqu?es

a

ces

objets

-LCB-

les

op?erations

d'

el?ements

a

el?ements

telles

que

l'addition

de

matrices

-LCB-

les

op?erations

de

r?earrangement

telles

que

la

transposition

d'une

matrice

Un

programme

est

une

composition

s?equentielle

de

telles

op?erations

Chaque

op?eration

est

associ?ee

a

un

ensemble

de

composantes

o?u

elle

sera

appliqu?ee

ces

composantes

sont

dites

actives

L'ensemble

des

composantes

actives

est

appel?e

le

contexte

d'activit

e

ou

la

port?ee

du

parall?elisme

Le

parall?elisme

est

ainsi

explicitement

sp?ecifi?e

par

les

op?erations

parall?eles

appliqu?ees

aux

objets

Historiquement

ce

mod?ele

de

programmation

est

issu

du

mod?ele

d'ex

ecution

SIMD

C'est

celui

mis

en

oeuvre

dans

l'architecture

de

la

ou

de

la

Maspar

une

unit?e

de

contr

ole

centralis?ee

diffuse

de

mani?ere

synchrone

les

instructions

du

programme

a

un

ensemble

de

processeurs

qui

les

ex?ecute

ou

non

selon

leur

activit?e

L'activit

e

se

d?eduit

des

diff?erentes

alternatives

du

programme

Dans

DPC

les

tableaux

parall?eles

sont

appel?es

domain

A

chaque

el?ement

d'un

domain

est

associ?e

un

processeur

virtuel

Les

op?erations

el?ements

a

el?ements

sont

d?enot?ees

par

les

op?erateurs

s?equentiels

classiques

tels

que

l'addition

ou

la

multiplication

Dans

DPC

les

blocs

data-parall

eles

et

s?equentiels

sont

explicitement

s?epar?es

contrairement

a

Hyper

C

ou

mpl

L'activation

d'un

bloc

data-parall

ele

est

sp?ecifi?ee

par

une

structure

de

contr

ole

suppl?ementaire

la

s?election

de

domain

-LRB-

domain

select

statement

-RRB-

A

l'int

erieur

d'un

bloc

dataparall?ele

les

structures

de

contr

ole

C

classiques

-LRB-

while

if

;-RRB-

acqui?erent

une

nouvelle

s?emantique

Composition

s?equentielle

Les

instructions

et

sont

ex?ecut?ees

en

s?equence

de

mani?ere

synchrone

par

l'ensemble

des

processeurs

actifs

domain

matrice

f

double

A

row

-LSB-

N

-RSB-

B

col

-LSB-

N

-RSB-

C

row

-LSB-

N

-RSB-

g

Mat

-LSB-

N

-RSB-

main

-LRB-

-RRB-

f

-LSB-

domain

matrice

-RSB-

f

int

i

j

i

while

-LRB-

i

N

-RRB-

f

C

row

-LSB-

i

-RSB-

j

while

-LRB-

j

N

-RRB-

f

C

row

-LSB-

i

-RSB-

A

row

-LSB-

j

-RSB-

Mat

-LSB-

i

-RSB-

B

col

-LSB-

j

-RSB-

j

g

i

g

g

g

Fig.

Multiplication

de

matrices

en

DPC

C

A

B

Alternative

if

-LRB-

B

-RRB-

else

L'ensemble

des

processeurs

actifs

evaluent

l'expression

B.

Les

processeurs

actifs

qui

ont

evalu?e

B

a

faux

deviennent

inactifs

est

ex?ecut?e

dans

le

nouveau

contexte

L'activit

e

initiale

est

restaur?ee

Les

processeurs

actifs

qui

avaient

evalu?e

B

a

vrai

deviennent

inactifs

est

ex?ecut?e

dans

ce

nouveau

contexte

L'activit

e

initiale

est

restaur?ee

It?eration

while

-LRB-

B

-RRB-

S.

A

chaque

it?eration

les

processeurs

actifs

evaluent

la

condition

B.

Les

processeurs

qui

ont

evalu?e

B

a

faux

deviennent

inactifs

pour

toutes

les

it?erations

suivantes

Le

corps

S

est

alors

ex?ecut?e

par

les

processeurs

restant

actifs

L'it

eration

termine

lorsque

tous

les

processeurs

sont

inactifs

L'activit

e

initial

est

alors

restaur?ee

Il

faut

noter

qu'un

processeur

inactiv?e

au

cours

de

l'it

eration

ne

pourra

redevenir

actif

m

eme

si

un

autre

processeur

modifie

l'

etat

de

la

machine

tel

que

B

s

evaluerait

a

vrai

Ce

comportement

est

diff?erent

de

l'it

eration

whilesomewhere

de

Hyper

C

o?u

le

processeur

serait

r?eactiv?e

Le

code

de

la

figure

est

un

exemple

de

programme

DPC

Ce

programme

calcule

la

multiplication

de

matrices

d'ordre

N

Ce

programme

d?efinit

le

domain

matrice

comme

un

tableau

lin?eaire

de

N

el?ements

Chaque

el?ement

est

trait?e

par

un

processeur

virtuel

Chaque

processeur

k

poss?ede

le

ke

vecteur

ligne

de

la

matrice

d'entr

ee

A

le

ke

vecteur

colonne

de

la

matrice

d'entr

ee

B

et

le

ke

vecteur

ligne

de

la

matrice

r?esultat

C.

L'instruction

-LSB-

domain

matrice

-RSB-

est

la

s?election

de

domain

qui

active

les

processeurs

virtuels

Les

lignes

r?esultats

sont

calcul?ees

en

parall?eles

et

chaque

processeur

k

calcule

s?equentiellement

le

ke

vecteur

ligne

de

la

matrice

r?esultat

C.

Chaque

processeur

peut

acc?eder

aux

el?ements

d'un

autre

comme

dans

l'expression

Mat

-LSB-

i

-RSB-

B

col

-LSB-

j

-RSB-

La

compilation

de

DPC

pour

machines

MIMD

a

m?emoire

partag?ee

telles

que

le

Sequent

ou

la

est

d?ecrite

dans

-LSB-

-RSB-

Par

rapport

au

mod?ele

d'ex

ecution

SIMD

du

data-parall

elisme

il

appara

t

deux

diff?erences

majeures

-LCB-

asynchronisme

entre

les

instructions

chaque

processeur

poss?ede

son

propre

s?equenceur

-LCB-

nombre

de

processeurs

fix?e

dans

DPC

aucune

limite

sur

le

nombre

de

processeurs

virtuels

n'est

fix?ee

Les

quatre

phases

de

compilation

d?ecrites

par

Hatcher

et

Quinn

sont

les

suivantes

Analyse

des

d?ependances

du

code

data-parall

ele

La

m?emoire

etant

partag?ee

les

interactions

entre

les

processeurs

sont

effectu?ees

par

de

simples

lectures

en

m?emoire

De

par

l'asynchronisme

de

la

machine

cible

le

compilateur

doit

d?etecter

les

points

de

d?ependance

de

donn?ees

entre

les

processeurs

Factorisation

des

points

de

d?ependance

Le

compilateur

g?en?ere

des

points

de

synchronisation

qui

regroupent

de

mani?ere

optimale

plusieurs

d?ependances

R?e?ecriture

des

structures

de

contr

ole

Les

points

de

synchronisation

d?egag?es

auparavant

sont

g?en?er?es

a

partir

du

graphe

de

d?ependance

des

donn?ees

uniquement

Les

d?ependances

de

contr

ole

ne

sont

pas

prises

en

compte

Par

exemple

un

point

de

synchronisation

peut

etre

g?en?er?e

dans

un

if

et

non

dans

le

else

correspondant

Le

code

est

transform?e

de

telle

mani?ere

que

tous

les

processeurs

ex?ecutent

les

points

de

synchronisation

Virtualisation

Chaque

processeur

physique

va

simuler

plusieurs

processeurs

virtuels

Ainsi

entre

chaque

synchronisation

une

boucle

ex?ecute

le

code

data-parall

ele

sur

ses

diff?erentes

instances

de

processeurs

virtuels

Une

compilation

efficace

doit

minimiser

le

nombre

de

points

de

synchronisation

Des

m?ethodes

de

r?eduction

du

nombre

de

points

de

synchronisation

pour

les

programmes

sans

boucle

sont

connues

-LSB-

-RSB-

Nous

nous

int?eressons

ici

exclusivement

a

la

r?e?ecriture

des

structures

de

contr

ole

pour

les

boucles

while

DPC

Hatcher

et

Quinn

proposent

une

m?ethode

optimis?ee

Nous

pr?esentons

une

etude

et

une

preuve

formelle

de

celle-ci

Compilation

des

boucles

while

data-parall

eles

Description

du

langage

cible

L'architecture

cible

est

une

machine

MIMD

a

m?emoire

partag?ee

-LRB-

MIMD-SM

-RRB-

Les

auteurs

pr?esentent

leur

sch?ema

de

traduction

dans

le

langage

C

de

la

machine

Sequent

-LRB-

Sequent-C

-RRB-

Pour

les

besoins

de

la

validation

nous

pr?esentons

le

sch?ema

de

traduction

dans

un

langage

parall?ele

simplifi?e

Un

programme

est

une

composition

parall?ele

de

processus

s?equentiels

Chaque

processus

est

ex?ecut?e

par

un

processeur

et

est

sp?ecifi?e

par

un

langage

de

programmation

s?equentielle

classique

enrichi

de

primitives

de

synchronisation

Les

communications

entre

processeurs

s

effectuent

par

l'interm

ediaire

de

la

m?emoire

partag?ee

La

partie

s?equentielle

du

langage

de

programmation

se

d?efinit

classiquement

Affectation

x

E.

La

variable

x

est

affect?ee

avec

la

valeur

de

l'expression

E.

Alternative

if

B

then

S

end

Si

l'

evaluation

de

l'expression

bool?eenne

B

est

vraie

alors

le

processeur

ex?ecute

S.

Composition

s?equentielle

Le

processeur

ex?ecute

le

code

de

puis

celui

de

It?eration

while

B

do

S

end

Le

processeur

ex?ecute

it?erativement

le

code

S

tant

que

la

condition

B

est

v?erifi?ee

La

partie

parall?ele

du

langage

se

d?efinit

par

la

composition

parall?ele

et

une

primitive

de

synchronisation

Composition

parall?ele

jj

jj

Sp

Les

programmes

s?equentiels

Sp

s

ex?ecutent

concurremment

Barri?ere

de

synchronisation

sync

Un

processeur

qui

commence

l'ex

ecution

de

cette

instruction

ne

peut

la

terminer

que

quand

tous

les

autres

auront

aussi

commenc?e

l'ex

ecution

d'un

sync

D'autre

part

chaque

processeur

i

poss?ede

une

variable

particuli?ere

nsynci

qui

repr?esente

le

nombre

de

synchronisations

effectu?ees

Boucles

while

avec

un

seul

point

de

d?ependance

Consid?erons

le

cas

o?u

la

phase

d'analyse

des

d?ependances

signale

qu'il

existe

une

d?ependance

dans

le

corps

de

la

boucle

entre

deux

blocs

S

et

T

-LRB-

figure

-RRB-

Pour

simplifier

la

description

de

la

compilation

nous

consid?erons

que

la

condition

d'arr

et

B

est

une

variable

bool?eenne

parall?ele

Une

premi?ere

traduction

pour

notre

architecture

cible

est

repr?esent?ee

sur

la

m

eme

figure

Pour

chaque

processeur

i

la

condition

d'arr

et

de

la

boucle

porte

sur

la

composante

i

de

la

variable

parall?ele

B

not?e

bi

Les

traductions

des

blocs

de

codes

S

et

T

sont

d?enot?ees

par

Si

et

Ti

La

variable

Actifi

d?enote

l'activit

e

du

processeur

Ce

sch?ema

de

traduction

suit

la

s?emantique

du

while

DPC

-LRB-

chaque

instruction

de

la

traduction

est

d?enot?ee

par

une

etiquette

-RRB-

Pour

tout

processeur

actif

si

B

s

evalue

a

faux

alors

il

devient

inactif

jusqu

a

la

fin

de

l'it

eration

A

chaque

it?eration

la

nouvelle

activit?e

d'un

processeur

i

est

d?etermin?ee

par

la

conjonction

de

son

activit?e

courante

Actifi

avec

la

condition

bi

Les

processeurs

ex?ecutent

les

blocs

S

et

T

selon

leur

activit?e

L'it

eration

termine

lorsque

tous

les

processeurs

sont

inactifs

la

condition

d'arr

et

est

donc

un

ou

global

sur

l'activit

e

de

tous

les

processeurs

ffi

A

la

fin

de

l'it

eration

l'activit

e

initiale

est

restaur?ee

L'activit

e

du

processeur

i

est

sauvegard?ee

avant

la

premi?ere

it?eration

dans

Sauvei

puis

restaur?ee

a

la

fin

de

l'it

eration

Le

mod?ele

d'ex

ecution

etant

asynchrone

deux

types

de

barri?eres

de

synchronisation

sont

introduites

a

cette

synchronisation

correspond

a

la

d?ependance

entre

les

blocs

de

calculs

S

et

T

b

la

condition

d'arr

et

est

un

ou

global

sur

les

variables

Actifi

-LRB-

-RRB-

Une

synchronisation

est

n?ecessaire

apr?es

la

mise

a

jour

de

l'activit

e

-LRB-

-RRB-

pour

tenir

compte

de

cette

nouvelle

d?ependance

Une

variante

possible

et

de

s?eparer

l'ex

ecution

des

processeurs

actifs

et

inactifs

Les

processeurs

actifs

ex?ecutent

une

premi?ere

boucle

dite

de

calcul

les

inactifs

ex?ecutent

une

deuxi?eme

dite

d'attente

-LRB-

figure

-RRB-

La

condition

d'arr

et

d'un

processeur

inactif

reste

un

ou

global

sur

l'activit

e

de

tous

les

processeurs

La

condition

d'arr

et

d'un

processeur

actif

i

porte

sur

l'activit

e

locale

Actifi

Bien

que

non

n?ecessaire

a

la

d?ependance

des

calculs

la

deuxi?eme

synchronisation

b

de

la

boucle

de

calcul

est

maintenue

pour

assurer

la

terminaison

La

trace

des

synchronisations

et

calculs

reste

identique

Une

propri?et?e

remarquable

de

cette

traduction

porte

sur

la

parit?e

du

nombre

de

synchronisations

effectu?ees

par

les

processeurs

Comme

on

a

deux

synchronisations

dans

les

deux

boucles

cette

parit?e

est

invariante

a

chaque

it?eration

Pour

chaque

processeur

i

on

a

les

propositions

suivantes

-LCB-

la

parit?e

de

nsynci

en

entr?ee

de

la

boucle

de

calcul

reste

la

m

eme

en

sortie

DPC

MIMD-SM

while

-LRB-

B

-RRB-

f

S

D?ependance

T

g

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actifi

Actifi

bi

Activit?e

premi?ere

it?eration

b

sync

Coh?erence

du

ou

global

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

if

-LRB-

Actifi

-RRB-

then

Le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

end

a

sync

Synchronisation

de

d?ependance

if

-LRB-

Actifi

-RRB-

then

Le

processeur

i

est

actif

Ti

Le

processeur

i

ex?ecute

le

code

T

end

Actifi

Actifi

bi

Activit?e

it?eration

suivante

b

sync

coh?erence

du

ou

global

end

b

sync

coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

Code

DPC

avec

une

d?ependance

et

une

premi?ere

traduction

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actifi

Actifi

bi

Activit?e

premi?ere

it?eration

b

sync

coh?erence

du

ou

global

while

-LRB-

Actifi

-RRB-

do

Tant

que

le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

a

sync

Synchronisation

de

d?ependance

Ti

Le

processeur

i

ex?ecute

le

code

T

Actifi

Actifi

bi

Activit?e

it?eration

suivante

b

sync

Coh?erence

du

ou

global

end

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

a

sync

Synchronisation

de

d?ependance

Actifi

Actifi

bi

Activit?e

it?eration

suivante

toujours

faux

b

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

S?eparation

des

processeurs

actifs

et

inactifs

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actif

i

Actifi

bi

Activit?e

premi?ere

it?eration

Actifi

true

while

-LRB-

Actif

i

-RRB-

do

Tant

que

le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

a

sync

Synchronisation

de

d?ependance

Ti

Le

processeur

i

ex?ecute

le

code

T

Actif

i

Actif

i

bi

Activit?e

it?eration

suivante

end

if

-LRB-

even

-LRB-

nsynci

-RRB-

-RRB-

then

Parit?e

du

nombre

de

synchronisation

du

processeur

i

sync

R?etablissement

de

la

parit?e

end

ffl

Actifi

false

sync

Coh?erence

du

ou

global

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

sync

Synchronisation

de

d?ependance

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

Suppression

de

la

synchronisation

redondante

dans

la

boucle

de

calcul

-LCB-

la

boucle

d'attente

effectue

le

test

de

terminaison

sur

une

parit?e

fix?ee

-LCB-

Actifi

ne

peut

etre

mis

a

faux

que

sur

l'autre

parit?e

-LRB-

comme

il

y

a

une

synchronisation

avant

la

boucle

de

calcul

ceci

est

vrai

pour

la

premi?ere

modification

de

Actifi

-RRB-

Une

hypoth?ese

suffisante

a

la

correction

de

cette

traduction

est

que

tous

les

processeurs

aient

effectu?e

un

nombre

de

synchronisations

de

parit?e

egale

avant

d'entamer

le

code

Dans

la

traduction

globale

d'un

programme

DPC

cette

hypoth?ese

est

v?erifi?ee

car

tous

les

processeurs

effectuent

un

nombre

de

synchronisations

identique

pour

chaque

phase

du

calcul

Si

on

supprime

la

deuxi?eme

synchronisation

dans

la

boucle

de

calcul

alors

l'invariance

de

parit?e

n'est

plus

v?erifi?ee

La

modification

de

l'activit

e

d'un

processeur

et

l'

evaluation

du

ou

global

par

d'autres

ne

sont

plus

n?ecessairement

s?epar?ees

par

une

synchronisation

Une

solution

consiste

a

-LRB-

figure

-RRB-

R?etablir

une

parit?e

fix?ee

a

la

sortie

de

la

boucle

de

calcul

chaque

processeur

ex?ecute

ou

non

une

nouvelle

synchronisation

selon

la

parit?e

du

nombre

de

synchronisation

qu'il

a

effectu?ees

Mettre

a

faux

la

variable

Actifi

a

cette

parit?e

seule

-LRB-

ffl

-RRB-

une

nouvelle

variable

Actif

i

est

introduite

et

repr?esente

l'activit

e

pour

la

boucle

de

calcul

-LRB-

-RRB-

et

Actifi

est

initialis?ee

a

true

-LRB-

-RRB-

-LRB-

Actif

i

-RRB-

Actifi

-RRB-

Ins?erer

une

synchronisation

avant

la

boucle

d'attente

elle

s?epare

la

modification

d'une

variable

Actifi

de

l'

evaluation

du

ou

global

La

synchronisation

avant

la

boucle

de

calcul

n'est

plus

n?ecessaire

Cette

solution

assure

que

tous

les

processeurs

termineront

en

m

eme

temps

lorsque

tous

les

processeurs

seront

inactifs

Par

rapport

a

la

pr?ec?edente

version

les

processeurs

effectueront

deux

fois

moins

de

synchronisations

Boucles

while

avec

deux

ou

plusieurs

points

de

d?ependance

Une

traduction

directe

d'une

boucle

while

DPC

a

deux

d?ependances

est

pr?esent?ee

sur

la

figure

Le

code

o?u

les

processeurs

actifs

et

inactifs

sont

s?epar?es

est

pr?esent?e

sur

la

figure

Le

nombre

de

synchronisations

effectu?ees

par

chacune

des

deux

boucles

est

un

multiple

de

trois

La

terminaison

est

assur?ee

lorsque

les

processeurs

ont

effectu?e

le

m

eme

nombre

de

synchronisations

avant

le

d?ebut

du

code

La

m

eme

transformation

est

appliqu?ee

on

supprime

la

derni?ere

synchronisation

-LRB-

de

type

b

-RRB-

de

la

boucle

de

calcul

et

on

ins?ere

un

m?ecanisme

qui

r?etablit

la

multiplicit?e

par

trois

du

nombre

de

synchronisations

apr?es

la

boucle

de

calcul

-LRB-

figure

-RRB-

Cette

optimisation

se

g?en?eralise

quel

que

soit

le

nombre

n

de

d?ependances

dans

la

boucle

de

calcul

-LCB-

S?eparation

en

deux

boucles

distinctes

des

processeurs

actifs

et

inactifs

-LCB-

boucle

des

actifs

avec

n

sync

correspondant

aux

d?ependances

-LCB-

boucle

des

inactifs

avec

n

sync

-LCB-

Insertion

d'un

m?ecanisme

qui

r?etablit

la

multiplicit?e

par

n

du

nombre

de

sync

en

sortie

de

la

boucle

des

processeurs

actifs

-LCB-

Modification

de

la

variable

repr?esentant

l'activit

e

une

fois

la

multiplicit?e

r?etablie

Le

sch?ema

de

traduction

d?epend

du

nombre

de

d?ependances

dans

la

boucle

initiale

DPC

MIMD-SM

while

-LRB-

B

-RRB-

f

S

D?ependance

T

D?ependance

U

g

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actifi

Actifi

bi

Activit?e

premi?ere

it?eration

b

sync

Coh?erence

du

ou

global

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

if

-LRB-

Actifi

-RRB-

then

Le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

end

a

sync

Synchronisation

de

d?ependance

if

-LRB-

Actifi

-RRB-

then

Le

processeur

i

est

actif

Ti

Le

processeur

i

ex?ecute

le

code

T

end

a

sync

Synchronisation

de

d?ependance

if

-LRB-

Actifi

-RRB-

then

Le

processeur

i

est

actif

Ui

Le

processeur

i

ex?ecute

le

code

U

end

Actifi

Actifi

bi

Activit?e

it?eration

suivante

b

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

Code

DPC

avec

deux

d?ependances

et

une

traduction

directe

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actifi

Actifi

bi

Activit?e

premi?ere

it?eration

b

sync

Coh?erence

du

ou

global

while

-LRB-

Actifi

-RRB-

do

Tant

que

le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

a

sync

Synchronisation

de

d?ependance

Ti

Le

processeur

i

ex?ecute

le

code

T

a

sync

Synchronisation

de

d?ependance

Ui

Le

processeur

i

ex?ecute

le

code

U

Actifi

Actifi

bi

Activit?e

it?eration

suivante

b

sync

Coh?erence

du

ou

global

end

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

a

sync

Synchronisation

de

d?ependance

a

sync

Synchronisation

de

d?ependance

b

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

S?eparation

des

processeurs

actifs

et

inactifs

R?esum?e

de

la

m?ethode

et

g?en?eralisation

La

m?ethodologie

qui

a

permis

de

d?egager

cette

m?ethode

de

traduction

se

r?esume

en

-LCB-

a

partir

d'une

solution

directe

isoler

les

invariants

du

programme

-LRB-

i.e.

multiplicit?e

par

n

du

nombre

de

synchronisations

-RRB-

et

les

hypoth?eses

n?ecessaires

a

son

bon

d?eroulement

-LRB-

i.e.

nombre

de

synchronisations

identique

au

d?ebut

du

code

-RRB-

-LCB-

effectuer

des

optimisations

locales

-LRB-

i.e.

suppression

de

la

synchronisation

non

n?ecessaire

aux

d?ependances

dans

la

boucle

de

calcul

-RRB-

-LCB-

introduire

un

m?ecanisme

qui

r?etablit

les

propri?et?es

initiales

-LRB-

i.e.

multiplicit?e

par

n

en

sortie

de

la

boucle

des

processeurs

actifs

-RRB-

Les

propri?et?es

implicites

du

sch?ema

de

traduction

directe

sont

explicit?ees

dans

le

programme

m

eme

La

solution

d?egag?ee

par

Hatcher

et

Quinn

a

un

champ

d'application

plus

large

l'absorption

des

synchronisations

r?esiduelles

d'un

programme

parall?ele

Soit

p

processus

s?equentiels

a

deux

etat

calcul

tous

les

processus

dans

cet

etat

coop?erent

et

se

synchronisent

par

sync

attente

les

processus

qui

ont

termin?e

leur

calcul

continuent

a

participer

aux

synchronisations

Le

programme

termine

lorsque

tous

les

processus

sont

dans

l'

etat

attente

Un

absorbeur

de

synchronisations

correspond

a

la

partie

attente

des

processus

et

assure

l'absence

de

blocage

du

programme

parall?ele

La

partie

attente

de

la

traduction

optimis?ee

pour

une

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actif

i

Actifi

bi

Activit?e

premi?ere

it?eration

Actifi

true

while

-LRB-

Actif

i

-RRB-

do

Tant

que

le

processeur

i

est

actif

Si

Le

processeur

i

ex?ecute

le

code

S

a

sync

Synchronisation

de

d?ependance

Ti

Le

processeur

i

ex?ecute

le

code

T

a

sync

Synchronisation

de

d?ependance

Ui

Le

processeur

i

ex?ecute

le

code

U

Actif

i

Actif

i

bi

Activit?e

it?eration

suivante

end

while

-LRB-

-LRB-

nsynci

mod

-RRB-

-RRB-

do

Nombre

de

synchronisations

du

processeur

i

multiple

de

sync

Synchronisation

suppl?ementaire

end

ffl

Actifi

false

sync

Coh?erence

du

ou

global

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

sync

Synchronisation

de

d?ependance

sync

Synchronisation

de

d?ependance

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

Suppression

de

la

synchronisation

redondante

dans

la

boucle

de

calcul

boucle

while

a

n

d?ependances

v?erifie

cette

propri?et?e

Les

absorbeurs

obtenus

ne

font

aucune

hypoth?ese

sur

la

partie

calcul

la

m?ethode

de

traduction

d?efinit

une

classe

universelle

d'absorbeurs

de

synchronisations.Comme

nous

le

verrons

dans

la

derni?ere

partie

le

repr?esentant

canonique

est

le

cas

o?u

n

est

egal

a

un

Validation

de

programmes

parall?eles

Owiki

et

Gries

ont

propos?e

une

m?ethode

bas?ee

sur

la

s?emantique

axiomatique

pour

v?erifier

les

propri?et?es

de

programmes

parall?eles

-LRB-

exclusion

mutuelle

synchronisation

et

absence

d'interblocage

-RRB-

-LSB-

-RSB-

Nous

employons

la

m

eme

m?ethode

pour

valider

l'absorbeur

de

synchronisation

extrait

de

la

compilation

d'un

while

DPC

a

une

d?ependance

V?erification

de

programmes

parall?eles

par

une

approche

axiomatique

Nous

rappelons

bri?evement

les

principes

de

la

v?erification

de

programmes

parall?eles

bas?es

sur

la

s?emantique

axiomatique

du

langage

de

programmation

Cette

s?emantique

se

pr?esente

sous

la

forme

de

triplets

fPg

S

fQg

o?u

P

et

Q

sont

des

pr?edicats

d?ecrivant

les

etats

possibles

de

l'ex

ecution

du

programme

S.

Plus

pr?ecis?ement

une

assertion

fPg

S

fQg

signifie

que

si

l'

etat

du

programme

satisfait

P

avant

l'ex

ecution

de

S

alors

il

satisfait

Q

apr?es

celle

ci

Un

ensemble

d'axiomes

et

de

r?egles

d'inf

erences

sur

la

syntaxe

des

programmes

fournit

une

m?ethode

de

d?erivation

de

telles

preuves

Les

r?egles

pour

la

partie

s?equentielle

du

langage

sont

d?efinies

classiquement

Dans

ce

qui

suit

x

repr?esente

une

variable

E

une

expression

B

une

expression

bool?eenne

S

et

Si

des

blocs

de

programmes

s?equentiels

P

et

Q

des

assertions

Affectation

fP

-LSB-

E

x

-RSB-

g

x

E

fPg

est

l'instruction

d'affectation

de

l'expression

E

a

la

variable

x.

P

-LSB-

E

x

-RSB-

repr?esente

l'assertion

P

o?u

toutes

les

occurrences

libres

de

x

sont

remplac?ees

par

l'expression

E

Alternative

fP

Bg

S

fQg

P

B

-RRB-

Q

fPg

if

B

then

S

end

fQg

est

l'alternative

c.

a-d

si

B

est

vraie

alors

l'ex

ecution

de

S

dans

un

etat

satisfaisant

P

m?ene

a

un

etat

satisfaisant

Q

sinon

P

satisfait

Q

Composition

s?equentielle

fPg

fRg

fRg

fQg

fPg

fQg

est

la

composition

s?equentielle

Si

l'ex

ecution

de

partant

d'un

etat

satisfaisant

P

conduit

a

un

etat

satisfaisant

R

et

de

m

eme

si

l'ex

ecution

de

partant

d'un

etat

satisfaisant

R

conduit

a

un

etat

satisfaisant

Q

alors

l'ex

ecution

de

la

composition

s?equentielle

partant

d'un

etat

satisfaisant

P

conduit

a

un

etat

satisfaisant

Q

It?eration

fI

Bg

S

fIg

fIg

while

B

do

S

end

fI

Bg

est

la

r?egle

d'it

eration

Ici

I

repr?esente

ce

qu'on

appelle

un

invariant

de

boucle

Si

la

condition

B

est

v?erifi?ee

alors

l'ex

ecution

du

corps

S

de

la

boucle

dans

un

etat

respectant

l'invariant

conduit

a

un

autre

etat

qui

le

respecte

encore

L'ex

ecution

s

arr

ete

quand

la

condition

B

n'est

plus

v?erifi?ee

La

preuve

d'un

programme

S

peut

etre

repr?esent?ee

par

le

code

original

agr?ement?e

d'assertions

interm?ediaires

Il

se

note

par

S

et

est

appel?e

l'annotation

du

programme

S.

Pour

toute

construction

C

du

programme

S

pre

-LRB-

C

-RRB-

est

la

pr?e

condition

de

C

dans

le

programme

annot?e

et

post

-LRB-

C

-RRB-

est

la

post-condition

D?efinition

-LRB-

Validit?e

-RRB-

Soit

S

un

programme

parall?ele

On

dit

que

l'annotation

fPg

S

fQg

est

valide

si

pour

toute

instruction

C

de

S

sa

pr?e

condition

-LRB-

resp

post-condition

-RRB-

pre

-LRB-

C

-RRB-

-LRB-

resp

post

-LRB-

C

-RRB-

-RRB-

dans

S

v?erifie

la

propri?et?e

suivante

pour

toute

ex?ecution

de

S

a

partir

d'un

etat

oe

satisfaisant

P

l'

etat

avant

-LRB-

resp

apr?es

-RRB-

ex?ecution

de

C

satisfait

pre

-LRB-

C

-RRB-

-LRB-

resp

post

-LRB-

C

-RRB-

-RRB-

La

correction

du

syst?eme

de

preuve

par

rapport

a

la

s?emantique

op?erationnelle

du

langage

de

programmation

assure

que

toute

annotation

correcte

d'un

programme

est

valide

-LSB-

-RSB-

La

preuve

d'un

programme

parall?ele

doit

tenir

compte

des

interactions

possibles

entre

les

processeurs

Owiki

et

Gries

ont

propos?e

une

m?ethode

de

preuve

en

deux

phases

-LSB-

-RSB-

La

phase

initiale

consiste

a

v?erifier

que

l'ex

ecution

concurrente

d'un

programme

s?equentiel

n'interf

ere

pas

sur

l'ex

ecution

des

autres

En

s?emantique

axiomatique

cela

signifie

que

toute

instruction

d'un

programme

s?equentiel

s

ex?ecutant

dans

un

etat

satisfaisant

sa

pr?e

condition

n'affecte

aucune

condition

des

autres

programmes

Plus

formellement

cela

peut

s

ecrire

D?efinition

Soit

une

instruction

C

d'un

programme

s?equentiel

S

et

pre

-LRB-

C

-RRB-

sa

pr?e

condition

dans

fPg

S

fQg

soit

un

programme

on

dit

que

C

n'interf

ere

pas

avec

fP

g

si

pre

-LRB-

C

-RRB-

g

C

quelle

que

soit

l'instruction

de

et

sa

pr?e

condition

pre

-LRB-

-RRB-

dans

fP

g

on

a

fpre

-LRB-

-RRB-

pre

-LRB-

C

-RRB-

g

C

fpre

-LRB-

-RRB-

g.

Ceci

concerne

une

une

instruction

isol?ee

pour

le

cas

g?en?eral

on

a

D?efinition

On

dit

que

les

programmes

s?equentiels

annot?es

S

S

fPpg

S?p

fQpg

sont

libres

d'interf

erences

si

quelque

soit

l'instruction

d'affection

C

d'un

programme

Si

alors

pour

tout

j

i

C

n'interf

ere

pas

avec

fPjg

S?j

fQjg

On

en

d?eduit

la

r?egle

suivante

Composition

parall?ele

fPpg

Sp

fQpg

sont

libres

d'interf

erences

Ppg

jj

jj

jj

Sp

Qpg

Il

est

a

noter

que

la

notion

de

non-interf

erence

est

associ?ee

aux

programmes

annot?es

par

leur

preuve

c.

a-d

qu'un

m

eme

programme

sera

libre

ou

non

d'interf

erences

selon

ce

que

l'on

veut

prouver

Par

exemple

fx

g

x

x

ftrueg

jj

ftrueg

x

x

ftrueg

n'est

pas

libre

d'interf

erences

Par

contre

fx

g

x

x

ftrueg

jj

fx

x

x

ftrueg

est

libre

d'interf

erences

Il

reste

a

d?efinir

une

axiomatisation

de

la

primitive

de

synchronisation

sync

On

note

par

nsync

le

vecteur

d'ordre

p

-LRB-

nsyncp

-RRB-

k

un

vecteur

d'ordre

p

et

le

vecteur

unit?e

d'ordre

p.

Synchronisation

f

nsync

kg

sync

f

nsync

k

tous

les

processeurs

passent

ensemble

la

barri?ere

de

synchronisation

et

le

compteur

local

est

incr?ement?e

On

en

d?eduit

les

deux

propri?et?es

suivantes

Propri?et?e

-LRB-

Locale

-RRB-

le

passage

d'une

barri?ere

de

synchronisation

incr?emente

le

compteur

local

i.e.

pour

tout

processeur

i

on

a

fnsynci

kg

sync

fnsynci

k

Propri?et?e

-LRB-

Invariant

de

synchronisation

-RRB-

les

processeurs

ne

peuvent

passer

une

barri?ere

de

synchronisation

qu'ensemble

i.e.

l'instruction

sync

v?erifie

l'invariant

suivant

nsynck

mg

sync

nsynck

mg

Interblocage

et

preuve

de

non

interblocage

Le

syst?eme

de

preuve

d?ecrit

pr?ec?edemment

permet

de

v?erifier

la

correction

partielle

la

preuve

ne

s

int?eresse

pas

aux

propri?et?es

de

terminaison

des

programmes

parall?eles

La

correction

est

dite

totale

quand

le

syst?eme

de

preuve

permet

de

plus

de

v?erifier

la

terminaison

des

programmes

Une

ex?ecution

de

programme

parall?ele

peut

ne

pas

terminer

pour

deux

raisons

principales

-LCB-

par

divergence

une

des

composantes

s?equentielles

est

dans

une

boucle

infinie

-LCB-

par

blocage

une

des

composantes

reste

bloqu?ee

sur

une

primitive

de

synchronisation

Nous

ne

nous

int?eressons

ici

qu

a

la

preuve

de

non

blocage

d'un

programme

parall?ele

D?efinition

-LRB-

Blocage

-RRB-

Soit

S

jj

jj

Sp

un

programme

parall?ele

sur

p

processeurs

et

oe

un

etat

On

dit

que

S

bloque

a

partir

de

oe

s

il

existe

une

ex?ecution

de

S

partant

de

l'

etat

oe

telle

qu'il

existe

deux

processeurs

i

et

j

-LRB-

i

j

-RRB-

avec

-LCB-

le

processeur

i

ex?ecute

une

instruction

sync

de

Si

-LCB-

le

processeur

j

a

termin?e

l'ex

ecution

de

Sj

Th?eor?eme

Soit

S

jj

jj

Sp

un

programme

parall?ele

sur

p

processeurs

On

note

par

Skj

les

instructions

sync

de

Sj

Pour

tout

j

on

note

pre

-LRB-

Skj

-RRB-

et

post

-LRB-

Sj

-RRB-

les

assertions

d?eriv?ees

d'une

annotation

valide

fPg

S

fQg

Si

pour

tout

i

et

j

i

j

on

a

-LRB-

kpre

-LRB-

Skj

-RRB-

post

-LRB-

Si

-RRB-

-RRB-

-RRB-

false

alors

le

programme

S

ne

bloque

pas

a

partir

de

tout

etat

initial

oe

satisfaisant

P

Preuve

soit

oe

un

etat

tel

que

oe

satisfait

P

et

S

bloque

sur

oe

Par

d?efinition

cela

signifie

qu'il

existe

une

ex?ecution

de

S

partant

de

oe

telle

qu'un

processeur

i

ait

termin?e

l'ex

ecution

de

Si

et

qu'il

existe

un

k

tel

qu'un

processeur

j

i

ex?ecute

l'instruction

Skj

sync

Soit

l'

etat

courant

a

ce

point

de

l'ex

ecution

De

par

la

d?efinition

de

la

validit?e

cela

signifie

que

j

post

-LRB-

Si

-RRB-

et

j

pre

-LRB-

Skj

-RRB-

D'

o?u

contradiction

Absorption

des

synchronisations

D?efinition

-LRB-

Absorption

-RRB-

Soit

un

programme

parall?ele

sur

p

processeurs

C

jj

jj

Cp

Soit

E

un

ensemble

d'

etats

Un

ensemble

de

p

programmes

s?equentiels

A

-LRB-

Ai

-RRB-

est

un

absorbeur

de

synchronisations

pour

C

selon

E

si

le

programme

parall?ele

-LRB-

-RRB-

jj

jj

-LRB-

Cp

Ap

-RRB-

ne

bloque

pas

a

partir

de

tout

etat

oe

E.

La

traduction

d'un

while

DPC

a

une

d?ependance

est

une

illustration

de

l'absorption

des

synchronisations

La

traduction

annot?ee

est

repr?esent?ee

sur

la

figure

Pour

un

processeur

i

la

partie

calcul

est

repr?esent?ee

par

le

bloc

de

code

Ci

et

la

partie

absorption

par

le

bloc

de

code

Ai

Soit

E

l'ensemble

des

etats

tel

que

quelque

soit

oe

E

oe

j

nsynck

m.

L'ensemble

des

programmes

s?equentiels

A

-LRB-

Ai

-RRB-

est

un

absorbeur

de

synchronisations

pour

le

programme

parall?ele

C

jj

jj

Cp

et

E

En

effet

pour

tout

i

et

j

i

j

on

a

-LCB-

P

ost

-LRB-

Ai

-RRB-

Pre

-LRB-

-RRB-

-RRB-

false

car

P

ost

-LRB-

Ai

-RRB-

-RRB-

Actifj

false

et

Pre

-LRB-

-RRB-

-RRB-

Actifj

true

-LCB-

P

ost

-LRB-

Ai

-RRB-

Pre

-LRB-

-RRB-

-RRB-

false

car

P

ost

-LRB-

Ai

-RRB-

-RRB-

Actifj

false

et

Pre

-LRB-

-RRB-

-RRB-

Actifj

true

-LCB-

P

ost

-LRB-

Ai

-RRB-

Pre

-LRB-

-RRB-

-RRB-

false

car

l'invariant

sur

le

nombre

de

synchronisations

nsynck

m

est

conserv?e

et

P

ost

-LRB-

Ai

-RRB-

-RRB-

Even

-LRB-

nsyncj

-RRB-

et

Pre

-LRB-

-RRB-

-RRB-

Odd

-LRB-

nsyncj

-RRB-

-LCB-

P

ost

-LRB-

Ai

-RRB-

Pre

-LRB-

-RRB-

-RRB-

false

car

P

ost

-LRB-

Ai

-RRB-

-RRB-

Actifk

false

et

Pre

-LRB-

-RRB-

-RRB-

Actifk

true

-LCB-

P

ost

-LRB-

Ai

-RRB-

Pre

-LRB-

-RRB-

-RRB-

false

car

l'invariant

sur

le

nombre

de

synchronisations

nsynck

m

est

conserv?e

et

P

ost

-LRB-

Ai

-RRB-

-RRB-

Even

-LRB-

nsyncj

-RRB-

et

Pre

-LRB-

-RRB-

-RRB-

Odd

-LRB-

nsyncj

-RRB-

D'apr

es

le

th?eor?eme

le

programme

parall?ele

-LRB-

-RRB-

jj

jj

-LRB-

Cp

Ap

-RRB-

est

exempt

de

blocage

La

seule

hypoth?ese

qui

est

faite

sur

la

partie

calcul

est

que

l'assertion

fActifi

trueg

est

invariante

pour

Ci

L'ensemble

des

programmes

s?equentiels

A

peut

servir

de

squelette

a

un

ensemble

d'absorbeurs

de

synchronisations

Soit

un

ensemble

de

p

variables

X

-LRB-

Xi

-RRB-

et

l'ensemble

de

p

programmes

s?equentiels

A

-LSB-

X

-RSB-

-LRB-

Ai

-LSB-

X

-RSB-

-RRB-

d?efini

comme

suit

Ai

-LSB-

X

-RSB-

if

Even

-LRB-

nsynci

-RRB-

then

sync

end

Xi

false

sync

while

-LRB-

kXk

-RRB-

do

sync

sync

end

Ci

nsynck

mg

Actif

i

Actifi

bi

Actifi

true

while

-LRB-

Actif

i

-RRB-

do

Si

nsynck

m

Actifi

trueg

sync

Ti

Actif

i

Actif

i

bi

end

nsynck

m

Actifi

trueg

Ai

if

-LRB-

even

-LRB-

nsynci

-RRB-

-RRB-

then

nsynck

m

Actifi

true

Even

-LRB-

nsynci

-RRB-

g

sync

end

Actifi

false

nsynck

m

Actifi

false

Odd

-LRB-

nsynci

-RRB-

g

sync

nsynck

m

Actifi

false

Even

-LRB-

nsynci

-RRB-

g

while

-LRB-

kActifk

-RRB-

do

nsynck

m

Actifi

false

Even

-LRB-

nsynci

-RRB-

Actifk

trueg

sync

nsynck

m

Actifi

false

Odd

-LRB-

nsynci

-RRB-

g

sync

nsynck

m

Actifi

false

Even

-LRB-

nsynci

-RRB-

g

end

-LRB-

nsynck

m

Actifk

false

-RRB-

Even

-LRB-

nsynci

-RRB-

g

Fig.

Absorption

de

synchronisations

Propri?et?e

Soit

un

programme

parall?ele

sur

p

processeurs

C

jj

jj

Cp

Soit

p

variables

Xi

de

C.

Soit

un

ensemble

d'

etats

initiaux

E.

Si

E

j

nsynck

m

et

s

il

existe

une

annotation

valide

du

programme

parall?ele

fPg

C

fQg

telle

que

-LCB-

E

j

P

-LCB-

l'assertion

fXi

trueg

est

invariante

pour

Ci

alors

l'ensemble

des

programmes

A

-LSB-

X

-RSB-

-LRB-

Ai

-LSB-

X

-RSB-

-RRB-

est

un

absorbeur

de

synchronisations

pour

C

et

E.

La

preuve

est

une

application

du

th?eor?eme

comme

l'exemple

pr?ec?edent

Cons?equence

Tout

programme

parall?ele

C

jj

jj

Cp

peut

etre

lib?er?e

de

risque

de

blocage

On

introduit

un

ensemble

de

nouvelles

variables

Xi

et

le

programme

-LRB-

true

sync

-RRB-

jj

jj

-LRB-

Xp

true

sync

Cp

-RRB-

a

comme

absorbeur

de

synchronisations

A

-LSB-

X

-RSB-

pour

tout

ensemble

d'

etats

initiaux

E

tel

que

E

j

nsynck

m.

Compilation

de

DPC

et

modularit?e

de

programmes

parall?eles

Retour

a

la

compilation

de

boucles

while

DPC

Soit

Actif

-LRB-

Actifi

-RRB-

Pour

toute

boucle

while

DPC

a

n

d?ependances

il

existe

une

traduction

qui

ne

bloque

pas

Le

sch?ema

de

traduction

est

pr?esent?e

sur

la

figure

Si

aucun

bloc

de

code

Sji

ne

modifie

une

variable

de

Actif

l'assertion

fActifi

trueg

est

invariante

dans

la

boucle

de

calcul

du

processeur

i.

D'apr

es

la

propri?et?e

A

-LSB-

Actif

-RSB-

est

un

absorbeur

de

synchronisations

pour

tout

ensemble

d'

etats

initiaux

E

tel

que

E

j

nsynck

m.

L'absorbeur

de

synchronisations

est

ind?ependant

du

nombre

de

d?ependances

Il

est

a

noter

que

cette

traduction

n'est

possible

que

de

par

la

s?emantique

du

while

DPC

Les

processeurs

devenus

inactifs

dans

la

boucle

ne

pouvant

etre

r?eactiv?es

par

des

effets

de

bords

des

processeurs

actifs

il

est

possible

de

d?egager

au

cours

de

l'ex

ecution

deux

boucles

successives

calcul

et

attente

Cette

optimisation

est

donc

impossible

dans

le

cas

du

whilesomewhere

de

Hyper

C

qui

permet

la

r?eactivation

de

processeurs

inactifs

par

des

effets

de

bords

des

actifs

Cela

souligne

l'importance

du

choix

de

la

s?emantique

des

structures

de

contr

ole

pour

une

compilation

efficace

Compositionnalit?e

de

programmes

parall?eles

La

primitive

de

synchronisation

sync

permet

d'introduire

une

propri?et?e

de

compositionnalit?e

des

programmes

parall?eles

qui

existe

dans

le

cas

du

parall?elisme

disjoint

-LSB-

-RSB-

Th?eor?eme

Soient

deux

programmes

parall?eles

sur

p

processeurs

S

jj

jj

Sp

et

T

jj

jj

Tp

ffi

Sauvei

Actifi

Sauvegarde

de

l'activit

e

courante

Actif

i

Actifi

bi

Activit?e

premi?ere

it?eration

Actifi

true

while

-LRB-

Actif

i

-RRB-

do

Tant

que

le

processeur

i

est

actif

Le

processeur

i

ex?ecute

le

code

a

sync

Synchronisation

de

d?ependance

Le

processeur

i

ex?ecute

le

code

a

sync

Synchronisation

de

d?ependance

a

sync

Synchronisation

de

d?ependance

Sni

Le

processeur

i

ex?ecute

le

code

Sn

Actif

i

Actif

i

bi

Activit?e

it?eration

suivante

end

if

even

-LRB-

nsynci

-RRB-

then

Nombre

de

synchronisations

du

processeur

i

pair

sync

Synchronisation

suppl?ementaire

end

ffl

Actifi

false

sync

Coh?erence

du

ou

global

while

-LRB-

kActifk

-RRB-

do

Tant

qu'il

reste

un

processeur

actif

sync

Synchronisation

de

d?ependance

sync

Coh?erence

du

ou

global

end

b

sync

Coh?erence

du

ou

global

ffi

Actifi

Sauvei

Restauration

de

l'activit

e

initiale

Fig.

Sch?ema

de

traduction

sans

blocage

d'une

boucle

a

n

d?ependances

qui

v?erifient

les

sp?ecifications

fPg

S

fRg

et

fRg

T

fQg

Supposons

que

pour

tout

etat

initial

v?erifiant

P

S

est

exempt

de

blocage

Alors

le

programme

parall?ele

U

-LRB-

sync

-RRB-

jj

jj

-LRB-

Sp

sync

Tp

-RRB-

v?erifie

la

sp?ecification

fPg

U

fQg

Preuve

De

par

la

s?emantique

de

l'instruction

sync

et

de

par

l'hypoth

ese

de

non

blocage

de

S

aucun

processeur

i

ne

pourra

entamer

le

bloc

de

code

Ti

alors

qu'il

reste

un

processeur

j

ex?ecutant

une

partie

de

Sj

D'autre

part

comme

S

est

sp?ecifi?e

par

fPg

S

fRg

les

processeurs

ne

d?ebuterons

l'ex

ecution

du

bloc

de

T

qu

a

partir

d'un

etat

satisfaisant

R.

Comme

T

est

sp?ecifi?e

par

fRg

T

fQg

alors

l'

etat

final

satisfera

Q.

Il

existe

donc

un

moyen

pratique

de

composer

s?equentiellement

deux

programmes

parall?eles

sur

p

processeurs

S

et

T

-LCB-

si

S

n'est

pas

libre

de

blocage

lui

adjoindre

un

absorbeur

de

synchronisations

-LRB-

par

exemple

A

-LSB-

X

-RSB-

comme

le

sugg?ere

la

consequence

-RRB-

-LCB-

effectuer

la

composition

s?equentielle

r?epartie

-LRB-

-LSB-

-RSB-

-RRB-

de

S

sync

et

T

i.e.

U

-LRB-

sync

-RRB-

jj

jj

-LRB-

Sp

sync

Tp

-RRB-

Cette

technique

permet

une

approche

modulaire

de

la

conception

des

programmes

parall?eles

L'application

est

d?ecompos?ee

en

couches

successives

Le

d?eveloppement

de

chaque

couche

est

effectu?e

en

faisant

abstraction

des

probl?emes

de

blocages

l'existence

d'absorbeurs

universels

permettant

d'assurer

le

non-blocage

de

chaque

couche

Conclusion

Dans

cette

etude

de

la

compilation

des

boucles

DPC

propos?ee

par

Hatcher

et

Quinn

nous

avons

d?egag?e

une

m?ethode

de

raffinement

des

sch?emas

de

compilation

d'un

langage

data-parall

ele

Celle-ci

consiste

a

-LCB-

rechercher

des

propri?et?es

implicites

d'un

sch?ema

de

traduction

directe

-LCB-

isoler

les

causes

de

perte

de

performance

et

proposer

des

optimisations

locales

-LCB-

r?eintroduire

explicitement

les

propri?et?es

perdues

lors

de

l'am

elioration

La

propri?et?e

que

nous

avons

cherch?e

a

maintenir

est

celle

de

l'absence

de

blocage

de

la

traduction

Le

probl?eme

pos?e

rentre

dans

un

cadre

plus

large

l'absorption

des

synchronisations

d'une

it?eration

r?epartie

et

la

d?erivation

d'absorbeurs

corrects

La

s?emantique

axiomatique

d'Owiki

et

Gries

a

servi

de

cadre

formel

a

la

validation

du

sch?ema

de

traduction

Nous

y

avons

ajout?e

une

axiomatisation

de

la

barri?ere

de

synchronisation

disponible

sur

toute

architecture

a

m?emoire

partag?ee

Nous

avons

d?efini

la

notion

de

blocage

induite

par

cette

nouvelle

primitive

et

d?eriv?e

des

conditions

suffisantes

de

non

blocage

Ensuite

nous

avons

d?efini

la

notion

d'absorbeur

de

synchronisations

d'un

programme

parall?ele

Nous

avons

observ?e

que

le

sch?ema

de

traduction

d'une

boucle

a

une

d?ependance

contenait

le

sch?ema

d'un

tel

absorbeur

D'autre

part

nous

avons

observ?e

que

cet

absorbeur

pouvait

etre

employ?e

pour

toutes

les

boucles

DPC

ayant

un

nombre

de

d?ependances

quelconque

comme

pr?econis?e

par

Hatcher

et

Quinn

De

m

eme

on

observait

que

ce

sch?ema

d'absorption

des

synchronisations

pouvait

etre

employ?e

pour

tout

programme

parall?ele

ayant

subi

une

transformation

simple

Enfin

nous

avons

montr?e

qu'un

programme

parall?ele

exempt

de

blocage

et

qu'un

programme

parall?ele

quelconque

pouvaient

etre

compos?es

s?equentiellement

par

l'interm

ediaire

d'une

barri?ere

de

synchronisation

Avec

le

sch?ema

d'absorbeur

de

synchronisations

-LRB-

-LRB-

universel

-RRB-

-RRB-

observ?e

auparavant

nous

avons

donc

d?egag?e

une

m?ethode

de

conception

modulaire

des

programmes

parall?eles

Dans

le

cas

des

programmes

distribu?es

-LRB-

mod?ele

CSP

-RRB-

cette

m?ethode

de

d?ecomposition

en

couches

successives

a

et?e

emise

par

Elrad

et

Francez

aucune

communication

ne

peut

intervenir

entre

deux

couches

distinctes

-LSB-

-RSB-

La

notion

de

couche

close

en

communication

d?evelop?ee

par

Gerth

et

Shrira

-LSB-

-RSB-

qui

est

equivalente

a

l'absence

de

blocage

permet

de

d?evelopper

des

modules

ind?ependants

de

programmes

distribu?es

Mais

en

l'absence

de

canal

de

communication

particulier

la

preuve

de

-LRB-

-LRB-

fermeture

-RRB-

-RRB-

doit

etre

faite

pour

chaque

module

Ici

gr

ace

a

l'existence

d'absorbeurs

simples

il

est

possible

de

d?evelopper

chaque

module

sans

s

inqui?eter

de

sa

-LRB-

-LRB-

fermeture

-RRB-

-RRB-

Dans

cette

etude

nous

avons

employ?e

une

m?ethode

de

preuve

axiomatique

Comme

le

principal

sujet

d'

etude

est

la

trace

des

synchronisations

on

peut

envisager

une

approche

par

une

s?emantique

observationnelle

de

type

CCS

La

synchronisation

serait

une

action

particuli?ere

dont

le

m?ecanisme

r?esiderait

dans

le

masquage

Un

absorbeur

de

synchonisations

serait

un

op?erateur

particulier

sur

l'alg

ebre

des

processus

mod?elisant

une

barri?ere

de

synchronisation

-LRB-

-LRB-

d'ordre

sup?erieur

-RRB-

-RRB-

L'analyse

des

propri?et?es

alg?ebriques

permettrait

peut

etre

de

formaliser

de

mani?ere

plus

ais?ee

le

processus

de

transformation

des

structures

de

contr

ole

de

la

compilation

d'un

programme

dataparall?ele

Par

exemple

le

cas

des

boucles

DPC

imbriqu?ees

que

nous

n'avons

pas

trait?e

dans

cette

etude

Remerciements

Je

remercie

Luc

Boug?e

et

Joachim

Gabarr?o

pour

leurs

commentaires

sur

ce

travail

R?ef?erences

-LSB-

-RSB-

K.R.

Apt

and

E.R.

Olderog

Verification

of

Sequential

and

Concurrent

Programs

Text

and

Monographs

in

Computer

Science

Springer

Verlag

-LSB-

-RSB-

L.

Boug?e

Modularit?e

et

Sym?etrie

pour

les

Syst?emes

R?epartis

Application

au

Langage

CSP

Laboratoire

d'Informatique

de

L'Ecole

Normale

Sup?erieure

Th?ese

d'Etat

-LSB-

-RSB-

L.

Boug?e

Mod?ele

de

programmation

a

parall?elisme

de

donn?ees

une

perspective

s?emantique

Technique

et

science

informatiques

-LRB-

-RRB-

-LCB-

-LSB-

-RSB-

T.

Elrad

and

N.

Francez

Decomposition

of

distributed

programs

into

communication-closed

layers

Science

of

Computer

Programming

-LCB-

-LSB-

-RSB-

High

Performance

Fortran

Forum

High

Performance

Fortran

language

specification

-LRB-

draft

version

-RRB-

CITI/CRPC

Rice

Univ.

Houston

January

Version

Draft

-LSB-

-RSB-

R.

Gerth

and

L.

Shrira

On

proving

communication

closedness

of

distributed

layers

In

K.

V.

Nori

editor

Sixth

conf

of

FST/TCS

number

in

LNCS

pages

-LCB-

New

Delhi

India

December

Springer

Verlag

-LSB-

-RSB-

P.J.

Hatcher

and

M.J.

Quinn

Data-Parallel

Programming

on

MIMD

Computers

Scientific

and

Engineering

Computation

The

MIT

Press

-LSB-

-RSB-

E.A.

Heinz

and

M.

Philippsen

Synchronization

Barrier

Elimination

in

Synchronous

FORALLs

Technical

Report

Universit?at

Karlsruhe

Fakult?at

f?ur

Informatik

-LSB-

-RSB-

Hyperparallel

Technologies

Ecole

Polytechnique

Projet

X-P

ole

Palaiseau

Cedex

France

Hyper

C

Documentation

June

-LSB-

-RSB-

MasPar

Computer

Corporation

Sunnyvale

CA

Maspar

Parallel

Application

Language

Reference

Manual

-LSB-

-RSB-

S.

Owiki

and

D.

Gries

Verifying

Properties

of

Parallel

Programs

An

Axiomatic

Approach

Communications

of

the

ACM

-LRB-

-RRB-

-LCB-

May

-LSB-

-RSB-

Thinking

Machine

Corporation

Cambridge

MA

C

programming

guide

concurrent programming
data-parallel languages
validating compilation scheme