Jungle The C++ simulator for APEmille

17
February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmi lle Jungle The C++ simulator for APEmille Andrea Michelotti for the APE collaboration [email protected] Workshop INFN sul software e calcolo moderno ‘97 - Napoli - February 6-7,

description

Jungle The C++ simulator for APEmille. Andrea Michelotti for the APE collaboration [email protected] I Workshop INFN sul software e calcolo moderno ‘97 - Napoli - February 6-7, 1997. APEmille : Array processor SIMD architecture with local addressing 66 MHz clock frequency - PowerPoint PPT Presentation

Transcript of Jungle The C++ simulator for APEmille

Page 1: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Jungle

The C++ simulator for APEmille

Andrea Michelotti for the APE [email protected]

I Workshop INFN sul software e calcolo moderno ‘97 - Napoli - February 6-7, 1997

Page 2: Jungle The C++ simulator for APEmille

APEmille:

• Array processor• SIMD architecture with local addressing• 66 MHz clock frequency• Scalable from 4Gflop/s to 1.1Tflop/s• RAM from 64Mbytes to 64Gbytes • Suited for Lattice QCD applications

= Processing Node

= Internode Hardware link

Page 3: Jungle The C++ simulator for APEmille

APEmille numbers:

• clock frequency 66MHz• peek performance

node 528 MFlop board 4.2 GFlop subcrate 16.9 GFlop crate 67.5 GFlop tower 270 GFlop APEmille 1.1 TFlop

• memories:Tarzan data STATIC 256 KBytesProgram SDRAM 512 KWord x 192 bitsJane data SDRAM 8 .. 32 MBytes

board: 64 .. 256 MBytestower: 4 .. 16 GbytesAPEmille: 16 .. 64 Gbytes

• APEChannel: 32bit channel; excess of 100MByte/sec bandwidth

Page 4: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

The Processing Board:• 1 controller processor named Tarzan• 8 processing nodes named Janes• 1 communication processor named Cheetah

NODE0 NODE1 NODE2 NODE3

NODE4

TARZAN

P

R

O

G

M

E

M

D

A

T

A

APECHANNEL

synchronization

signals

NODE5 NODE6 NODE7

CHEETAH

Page 5: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

PCs

PBsCrate

Backplane

ApeUnit

PC Slave

ApeNic ApeChannel

up to 4 PBs

Page 6: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

PC

NIC

PC

NIC

PC

NIC

PC

NIC

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

ApeUnit

PC

NIC

PC

NIC

PC

NIC

PC

NIC

Control Network

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

PB

Page 7: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

What does Jungle do?

software development (OS, compilation chain) check of hardware solutions performance evaluation test vector generation for hardware testing

a complete and thorough behavioralsimulation, needed for:

Page 8: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

ApeMille software activities

Compilation

Chain

O.S.

Layers

Simulation

Tools

S/W

Management

High Level

Compiler

Linux drivers Jungle simulator Revision control (CVS)

Assembler

Code Optimizer

O.S.

Kernel

Test vectors

analyzer

Test management

Linker Host

Network

Simulator utilities

Debugger O.S.

Monitor

Profiler

Page 9: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Why have we chosen C++? (since 1992)

Powerful methodology for design and maintenance of large S/W projects.

Classes allow a logic subdivision of the code in distinct components.

Provides an efficient handle on complexity of the problem.

Page 10: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

The SIM++ library

Basic classes:

DEVICE• All device-objects are derived from this class. • A “grey box” which communicates through input and output ports. • It contains others device-objects.

USER_DEVICE• This class is derived from DEVICE class, but contains no other objects.• The user transfer function is defined in these objects.

PORT• This class manages connections between device-objects.

Page 11: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Basic methods:

step• get inputs, process them and produce outputs

trace

• trace the state of a device and produce test vectors

load/save

• load/save an object from/to a configuration file

Page 12: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

USER_DEVICE objects

outputPORT object

DEVICE objects

Top DEVICE object

A physical device is represented by a tree structure:

nodes DEVICE objects

leafs USER_DEVICE objects

Page 13: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Simulation of a full ApeUnit

First step: Connection of Objects are spefified in the configuration file.

Second step: Start of jungle process “switching on” power of the virtual AU.

Third step: Start of ApeOS process.

Ready to load and run a user program on the virtual APEmille machine

The classes which represent the internal devices of the basic chips (Tarzan, Cheetah, Jane) are defined in three libraries.

Page 14: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

ApeOS

processA

peN

ic o

bjec

t

Jungle process

NODE0 NODE1 NODE2 NODE3

NODE4

TARZAN

P

R

O

G

M

E

M

D

A

T

A

NODE5 NODE6 NODE7

CHEETAHPB

obj

ectApe Unit

all driver functions supported

signals

APECHANNEL

Page 15: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Parallel simulation of parallel systems

Jungle simulation can be splitted over more than one PC

faster simulation of multi-AU systems

testing of the distributed OS

AU0 on PC0

AU1 on PC1

Root

process

ApeOS

ApeOS

Page 16: Jungle The C++ simulator for APEmille

February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille

Conclusions

• The simulated machine behaves equivalent to the real one (the only difference is that the real one is much faster:-).

• Modifications of the APEmille design can be implemented quickly and in a realiable way (simply change of configuration file).

• Provide coherent tool to test new HW & SW solutions.

Page 17: Jungle The C++ simulator for APEmille

The APEmilleGroup

F. AgliettiU. AlbertiA. BartoloniC. BattistaS. CabasinoN. CabibboM. ChiricozziM. CosimiP. De RisoW. ErricoS. GiovannettiF. LaicoA. LonardoV. MårdhF. Marzano G. Magazzú

http://chimera.roma1.infn.it/ape.html

A. MichelottiA. MonelloE. PanizziP. S. PaolucciF. RapuanoW. RinaldiD. RossettiG. SaccoR. SarnoD. SalvatoriH. SimmaR. SinisiM. TorelliR. TripiccioneE. ValenteP. Vicini

Istituto Nazionale di Fisica NucleareItalian National Institutefor Nuclear Physics