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
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
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
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
February 1997 Andrea Michelotti: Jungle, the C++ simulator for APEmille
PCs
PBsCrate
Backplane
ApeUnit
PC Slave
ApeNic ApeChannel
up to 4 PBs
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
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:
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
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.
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.
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
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
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.
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
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
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.
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