#1 panel session-1 - iaria · 2016. 9. 11. · title: microsoft powerpoint - #1 panel...

42
Panel session FUTURE COMPUTING / COMPUTATION TOOLS Emerging Computing Paradigm and Their Theoretical and Practical Support Tools COMPUTATION WORLD 2012 FUTURE COMPUTING / COMPUTATION TOOLS PANEL FUTURE COMP SYSTEMS, PANEL SESSION EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND PRACTICAL SUPPORT TOOLS, NICE, 26.7.12 Practical Support Tools FUTURE COMPUTING / COMPUTATION TOOLS PANEL EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND PRACTICAL SUPPORT TOOLS NICE, 26.7.12

Upload: others

Post on 03-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Panel sessionFUTURE COMPUTING / COMPUTATION TOOLS

Emerging Computing Paradigm and Their Theoretical andPractical Support Tools

COMPUTATION WORLD 2012

FUTURE COMPUTING / COMPUTATION TOOLS PANEL

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

Practical Support ToolsFUTURE COMPUTING / COMPUTATION TOOLS PANEL

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL

AND PRACTICAL SUPPORT TOOLS

NICE, 26.7.12

Page 2: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

PANELLISTS

Moderator:

Dietmar Fey, University Erlangen-Nuremberg, Germany

Glenn Luecke, Iowa State University, USA

Torsten Ullrich, Fraunhofer Research Centre, Graz, Austria

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

Torsten Ullrich, Fraunhofer Research Centre, Graz, Austria

Daniel Hulme, University College London, UK

Valeriya Gribova, Russian Academy of Sciences,Nowosibirsk, Russia

Page 3: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

RESULTS OF PANEL DISCUSSION

• Not only architectures (multi-core, GPU and FPGAaccelerators) will become more heterogenous than they are already

• Also tools need diversification due to diverse application scenarios• Most abstract levels:

Expert systems need ontology programming and appropriate tools• Less abstract level:

SaaS (Software as a Service) needs virtualization and appropriate toolsfor developing service and client

• More hardware-oriented level:

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

• More hardware-oriented level:Tools have to support optimization more than nowAutomatic transfer of code sequences in optimized structuresMay be autotining is an answer for that sophisticated task

• Stronger hardware-orientated level (HPC applications):The performance to achieve is everything and therefore adequate toolsare necessary

• Hardware architecture level:Future Nanotechnology requires tools that support resiliency ondifferent levels (analgoue, digital and system level)

Page 4: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Need EasyNeed Easy--ToTo--Use, Automatic Tools forUse, Automatic Tools forError Detection and PerformanceError Detection and Performance

AssessmentAssessment

Glenn Luecke

Professor Glenn Luecke - Iowa State University 2012 1

Glenn LueckeProfessor of MathematicsDirector, High Performance Computing GroupIowa State University, Ames, Iowa, USAJuly 26, 2012

Page 5: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Purpose of ToolsPurpose of Tools

aid expert and non-expert programmers to quickly correctprogram errors & to develop fast, high performanceprograms

Professor Glenn Luecke - Iowa State University 2012 2

programs

tools depend on the programming model used

Page 6: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Current and Future ProgrammingCurrent and Future ProgrammingParadigmsParadigms

MPI with Fortran, C/C++

OpenMP, OpenMP with MPI

CUDA, CUDA with MPI, CUDA with OpenMP & MPI

OpenCL

Professor Glenn Luecke - Iowa State University 2012 3

OpenCL

OpenACC

Unified Parallel C, Co-Array Fortran

Chapel (Cray)

X10 (IBM)

Fortress (Oracle) – project stopped last week

Page 7: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Tool DesignTool Design

easy-to-use

low CPU and memory overhead

scalable

Professor Glenn Luecke - Iowa State University 2012 4

messages issued must be accurate and containinformation needed to easily fix both functional andperformance problems identified

Page 8: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

FUTURE TECHNOLOGICAL DEVELOPMENT AND ITS IMPLICATION FOR

PROCESSOR ARCHITECTURES.

CONTRIBUTION DIETMAR FEY• Chair for Computer Architecture

Friedrich-Alexander-University Erlangen-Nuremberg, Germany

COMPUTING PARADIGM FOR (MIDTERM) FUTURE CIRCUITS

• Use VLSI photonics for communication• Use memristor for storing

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

• Use memristor for storing• Use CMOS for processing

STILL CMOS?Keep aware of nanotechnology / nanocomputing• Memcomp (Memristor for Computing)• Quantum Cellular Automata• Carbon Nano Tube FET

Page 9: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

FUTURE TECHNOLOGICAL DEVELOPMENT AND ITS IMPLICATION FOR

PROCESSOR ARCHITECTURES

• Memcomp (Memristor for Computing)

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

Page 10: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

IMPLICATIONS ON TOOLS

• Trend will continue• Higher frequencies and very aggressive dynamic instruction

scheduling techniques are abandoned

• Replaced by many simpler cores

• Consequences for manufacturability and dependability

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

• Consequences for manufacturability and dependability

• Resiliency fundamental for next-generation systems Reliable systems based on unreliable but high-dense integrated

devices

Page 11: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

IMPLICATIONS ON ARCHITECTURES AND TOOLS

Nanocomputing requires a cross-layer approach Technology

Circuit

Architectural

Resiliency on different levels is required

FUTURE COMP SYSTEMS, PANEL SESSION

EMERGENT COMPUTING PARADIGMS AND THEIR THEORETICAL AND

PRACTICAL SUPPORT TOOLS, NICE, 26.7.12

Resiliency on different levels is required Technological

• Analogue circuits that observe digital circuits

Circuit• Redundant coding schemes

Architecture• Self-reconfiguration

• Switching off fault and switching on unused cores

Page 12: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Dr. Daniel Hulme, UCL (University College London)

Computation Tools Panel - ComputationWorld 2012 1

NP-Complete Project

Page 13: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Data Model Optimize Iterate

ILOG model.lpt CPLEX + vanilla parameters Solution

Current Solving Process

or

Bespoke Model Bespoke Algorithm Solution

Page 14: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

<< Better Solution

model.lpt

LPX LPT LPS

MOD AMPL GAMS MPS SMT1

SMT2

SMT3

CSP1 CSP2 CSP3 PBP1 PBP2 SAT1 SAT2 SAT3 SAT4

FICO CPLEX

GUROBI MOSEK LINDO AIMMS MINTO

SYMPHONY CBC

GLPK SCIP

LPSOLVE QSOPT IPOPT

LINPROG QUADPROG OPENSMT

BARCELOGIC MATHSMT

CVC4 YICES

Z3 MINION

BOOLVAR PBSOLVE

SAT4J SPEAR

MINISAT GLUCOSE ZCHAFF

MANYSAT LINGELING

CLASP PRECOSAT SATZILLA

FICO1

FICO2

FICO3

FICO4

… GUROBI1 GUROBI2 GUROBI3

… SYMPHONY1 SYMPHONY2 SYMPHONY3 SYMPHONY4

… SCIP1 SCIP2 SCIP3

... SYMPHONY1 SYMPHONY2 SYMPHONY3 SYMPHONY4

… PBSOLVE 1 PBSOLVE 2 PBSOLVE 3 PBSOLVE 4

… ZCHAFF1 ZCHAFF2 ZCHAFF3

… SATZILLA1

SATZILLA2

SATZILLA3

1. Formats

2. Algorithms

3. Parameters

New Solving Process

Page 15: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Cloud-based Solving

Page 16: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

SAT-Solving Comparison

Page 17: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

• Algorithm Family vs. Application

6

0

10

20

30

40

50

60

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

----

----

---

sat

cple

x

cpx

guro

bi

scip

smt

Nu

mb

er o

f so

luti

on

s

Generic-Solving Comparison

Page 18: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

7

Open-Innovation Model

Page 19: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

How to simplify developmentand maintenance of intelligent

1

and maintenance of intelligentsoftware?

Valeriya GribovaRussian Academy of Sciences

Page 20: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Intelligent system

Knowledge base Task solver User Interface

Intelligent system is a system that emulates the decision making ability of a

2

Intelligent system is a system that emulates the decision making ability of ahuman expert

•High complexity of knowledge formalization

•Complexity of implementation and maintenance

•Rapid obsolescence of knowledge

Page 21: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Software development andmaintenance

3

Page 22: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Complications of programdevelopment and maintenance

• Maintenance

Developer Maintainer

• Program development

• To understand a set ofcomputation processes(extension of a task) to obtainresults for various possible inputdata

• To specify this set in aprogramming language (to write aprogram)

• To recover extension of thetask and comprehend why thecomputation processes resultin exactly these output data

• To understand how to changethese processes in order toobtain new output data andthen modify the program

4

Page 23: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Imperative paradigmThe basis: Computational models

The process of obtaining results: Sequence of states; every follow-up stateis generated from the previous one usingthe assignment operator

The state of a computation process: A set of variable values

The next state: A modification of a variable value

The terminal state: The computation result

All the states of the computation process, except for theterminal state, are only indirectly connected to thecomputation result.

5

Page 24: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Functional paradigmThe basis: Lambda calculus

The process of obtaining results: An oriented marked network of a functioncall

The label of every terminal vertex: Input data

The label of every non-terminal vertex: A function value

Arguments of this function: Labels of arcs outgoing from this vertex

The label of the network root The computation result

All temporary values (labels of non-terminal vertexes), except for theroot label, are indirectly connected to the computation result.

6

Page 25: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Logical paradigmThe basis: First order predicate calculus

The process of obtaining results: An oriented marked network of resultinference

The label of every terminal vertex: Input data (a relationship tuple)

The label of every non-terminal vertex: a relationship tuple representing theresult of applying a rule to premises

Labels of arcs outgoing from this vertex: PremisesLabels of arcs outgoing from this vertex: Premises

The label of the network root The computation result

All temporary values (labels of non-terminal vertexes), except for theroot label, are indirectly connected to the computation result.

7

Page 26: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

• To suggest a programming paradigm where processes of obtainingresult are direct

To simplifydevelopment ,

understanding, andmodification a program

The computation result is obtained at the last step of thecomputation process

• A fragment of a result is formed at the every step of thecomputation process

• A program is an executable specification of a set of results ofcomputation (but not a set of indirect processes of obtaining them)

Specification of a set of results of computation an ontology of computation results

8

Page 27: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

The main idea is to suggest a programmingparadigm where processes of obtaining resultare direct. It means that a fragment of a resultis formed at the every step of the

Ontological programming paradigm

is formed at the every step of thecomputation process.

9

Page 28: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Program a process ofobtaining results

Program an ontology ofresults

Ontological programming paradigm

Programmer

10

Page 29: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Example: expert system ofmedical diagnosis

11

Page 30: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Expert system of medicaldiagnosis

12

Page 31: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Expert system of medicaldiagnosis

Hypotheses “Factor is normal”

13

Page 32: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Emerging Computing Paradigms &Their Theoretical and Practical Support ToolsFuture Trends and Challenges of Compiler Construction and

Programming Languages

Torsten Ullrich

Fraunhofer Austria, Visual Computingand Technische Universitat Graz

July 26th, 2012

1 / 7

Page 33: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Torsten Ullrich

[email protected]

http://www.fraunhofer.at

Senior Researcher at Fraunhofer Austria Research GmbH,Graz, Austria

Areas of Specialization: Geometry and Modeling Languages

PhD in Computer Science (Dr. techn.),Technische Universitat Graz, Austria

MSc in Mathematics (Dipl. Math.),Universitat Karlsruhe (TH), Germany

2 / 7

Page 34: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

CPU and GPU

GPUs are faster than CPUs

factor 2.5 according to Lee, V. [LKC+10](Intel Corporation)

factor 300 according to Fang, Q. [FB09], Keane, A. [Kea10](NVIDIA Corporation)

Productivity

GPUs are programmed

using dedicated languages (CUDA, OpenCL) or

via GPU libraries.

3 / 7

Page 35: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

CPU and GPU

GPUs are faster than CPUs

factor 2.5 according to Lee, V. [LKC+10](Intel Corporation)

factor 300 according to Fang, Q. [FB09], Keane, A. [Kea10](NVIDIA Corporation)

Productivity

GPUs are programmed

using dedicated languages (CUDA, OpenCL) or

via GPU libraries.

3 / 7

Page 36: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

GPUs and Productivity

Productivity

Productivity depends on [Pre00]

programming language,

available libraries,

tool chain, and

societal / educational settings.

Problem

How to match high-level languages and designwith low-level hardware?

How to translate “Array of Structures” into“Structure of Arrays”?

4 / 7

Page 37: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

GPUs and Productivity

Productivity

Productivity depends on [Pre00]

programming language,

available libraries,

tool chain, and

societal / educational settings.

Problem

How to match high-level languages and designwith low-level hardware?

How to translate “Array of Structures” into“Structure of Arrays”?

4 / 7

Page 38: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

“Array of Structures” vs. “Structure of Arrays”

Array of Structures

Vector data1, data2;

Vector calculate() {Vector result = ...;for(...)

result.set(...,values1.get(...)

* values2.get(...);return result;

}

Structure of Arrays

class {float[] values1;float[] values2;

float[] calculate() {float[] result = ...;for(...)

result[...] = values1[...]* values2[...];

return result;} }

5 / 7

Page 39: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Future Challenges / Open Issues

With new hardware platforms (CPU → GPU) and new hardwareparadigms (single-core/multi-core → massively parallel multi-core)

Do we need new programming languages?

Do we need new programming paradigms?

Can existing languages / code be translated to GPU-platformsautomatically and take advantage of their computationalpower (e.g. a Java JIT-compiler with GPU-backend)?

6 / 7

Page 40: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

References

7 / 7

Page 41: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Qianqian Fang and David A. Boas.Monte Carlo simulation of photon migration in 3D turbidmedia accelerated by graphics processing units.Optics Express, 17:20178–20190, 2009.

Andy Keane.”GPUs are only up to 14 times faster then CPUs” says INTEL.blogs.nvidia.com, 20100623:1, 2010.

Victor W. Lee, Changkyu Kim, Jatin Chhugani, MichaelDeisher, Daehyun Kim, Anthony D. Nguyen, Nadathur Satish,Mikhail Smelyanskiy, Srinivas Chennupaty, Per Hammarlund,Ronak Singhal, and Pradeep Dubey.Debunking the 100X GPU vs. CPU myth: an evaluation ofthroughput computing on CPU and GPU.

7 / 7

Page 42: #1 Panel session-1 - IARIA · 2016. 9. 11. · Title: Microsoft PowerPoint - #1 Panel session-1.pptx Author: ��owner Created Date: 8/28/2012 10:17:16 PM

Proceedings of the Annual International Symposium onComputer Architecture, 37:451–460, 2010.

Lutz Prechelt.An empirical comparison of seven programming languages.Computer, 33:23–29, 2000.

7 / 7