Download presentation
Presentation is loading. Please wait.
Published byNicholas Murphy Modified over 9 years ago
1
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Building and Running Parallel Simulations 1 Instantiate Components Connect Components Register Clocks Simulation Functions Initialization Configuration parameters From Manifold Library Inputs (trace, QSIM, etc.) Instantiate Links Set Timing Behavior Time stepped vs. discrete event Set Duration, Cleanup, etc.
2
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Building and Running Parallel Simulations Kernel Interface Simulator Construction Logs and Statistics Demos 2
3
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Kernel Interface Component functions create component component can have 0-4 constructor arguments template allows constructor parameters to be any type returns unique integer ID Component::Create (lp, node_id, m_conf, cpuid, proc_settings); //component-decl.h template static CompId_t Create(LpId_t, CompName name=CompName(“none”));... template static CompId_t Create(LpId_t, const T1&, const T2&, const T3&, const T4&, CompName name=CompName(“none”)); 3
4
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Kernel Interface Connect components one-way connection two-way connection //manifold-decl.h template static void Connect(CompId_t srcComp, int srcIdx, CompId_t dstComp, int dstIdx, void (T::*handler)(int, T2), Ticks_t latency); //manifold-decl.h template static void Connect(CompId_t comp1, int idx1, void (T::handler1)(int, T2), CompId_t comp2, int idx2, void(U::*handler2)(int, U2), Clock& clk1, Clock& clk2, Ticks_t latency1, Ticks_t latency2); Source component Source component Destination component Destination component srcIdx dstIdx 4
5
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Kernel Interface Clock functions: constructor, Register() //clock.h Clock(double freq); template static tickObjBase* Register(Clock& clk, O* obj, void (O::*rising)(void) void (O::*falling)(void)); simulation functions //manifold-decl.h static void Init(int argc, char**argv, SchedulerType=TICKED, SyncAlg::SyncAlgType_t syncAlg=SyncAlg::SA_CMB_OPT_TICK, Lookahead::LookaheadType_t la=Lookahead::LA_GLOBAL); static void Finalize(); static void StopAt(Ticks_t stop); static void Run(); 5
6
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Simulator Construction Steps for building a simulation program – Call Manifold::Init() – Build system model: Clock() ; Create(), Connect(), Register() – Set simulation stop time: StopAt() – Call Manifold::Run() – Call Manifold::Finalize() – Print out statistics: print_stats() 6
7
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Logs and Statistics Each component collects its own statistics A convention for printing stats is: void print_stats(std::ostream&); 7
8
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Example Simulators Simulator 1: For demo purposes only Builds a 2-core system 2 Zesto cores MCP cache Iris(2x2 torus) CaffDRAM Runs sequential or parallel (3 LPs) simulation Simulator 2: Part of software distribution 3 programs: work with Qsim server, Qsim lib, and traces, respectively Core model can be replaced with one-line change to configure file 8
9
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Sample Results: Setup 16, 32, 64-core CMP models 2, 4, 8 memory controllers, respectively 5x4, 6x6, 9x8 torus, respectively Host: Linux cluster; each node has 2 Intel Xeon X5670 6- core CPUs with 24 h/w threads 13, 22, 40 h/w threads used by the simulator on 1, 2, 3 nodes, respectively 200 Million simulated cycles in region of interest (ROI) Saved boot state and fast forward to ROI 9
10
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Sample Results: Simulation Time in Minutes 16-core32-core64-core Seq.Para.Seq.Para.Seq.Para. dedup1095.7251.4 (4.4X)2134.8301.3 (7.1X)2322.9345.3 (6.7X) facesim1259.3234.9 (5.4X)2614.2303.6 (8.6X)3170.2342.3 (9.3X) ferret1124.8227.8 (4.9X)1777.9255.6 (7.0X)2534.3331.3 (7.6X) freqmine1203.3218.0 (5.5X)1635.6245.6 (6.7X)2718.9337.3 (8.1X) stream1183.8222.7 (5.3X)1710.6244.3 (7.0X)4796.4396.2 (12.1X) vips1167.0227.3 (5.1X)1716.3257.2 (6.7X)2564.6337.9 (7.6X) barnes1039.9224.3 (4.6X)1693.0283.3 (6.0X)3791.8341.4 (11.1X) cholesky1182.4227.2 (5.2X)1600.3245.7 (6.5X)4278.3402.1 (10.6X) fmm1146.3229.6 (5.0X)1689.8253.6 (6.7X)5037.2416.1 (12.1X) lu871.2156.4 (5.6X)1475.8204.6 (7.2X)4540.3402.7 (11.3X) radiosity1022.3228.8 (4.5X)1567.5250.4 (6.3X)2813.5350.3 (8.0X) water671.5158.4 (4.2X)1397.3236.7 (5.9X)2560.1356.3 (7.2X) 10
11
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Sample Results: Simulation in KIPS 16-core32-core64-core Seq.Para.Seq.Para.Seq.Para. dedup49.28211.9848.56340.6116.88136.82 facesim58.66316.4247.90401.7230.01278.94 ferret57.77284.8135.41239.5918.10139.54 freqmine57.15314.9937.01248.6019.37140.18 stream58.77314.3436.73260.0441.42419.77 vips58.03298.0934.92236.0618.02131.02 barnes30.66151.3232.62168.7439.61219.63 cholesky57.95301.4738.87254.5445.68491.46 fmm51.01252.4637.90255.8640.94525.51 lu50.93155.7439.78119.4646.23485.04 radiosity50.87206.9653.15229.0236.29268.70 water27.8695.8129.85132.2225.72179.88 Mean50.75242.0339.39240.5431.52284.71 Median54.08268.6337.45244.1033.15244.16 11
12
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Sample Results: KIPS per Hardware Thread 16-core32-core64-core Seq.Para.Seq.Para.Seq.Para. dedup49.2816.3148.5615.4816.883.42 facesim58.6624.3447.9018.2630.016.97 ferret57.7721.9135.4110.8918.103.49 freqmine57.1524.2337.0111.3019.373.50 stream58.7724.1836.7311.8241.4210.49 vips58.0322.9334.9210.7318.023.28 barnes30.6611.6432.627.6739.615.49 cholesky57.9523.1938.8711.5745.6812.29 fmm51.0119.4237.9011.6340.9413.14 lu50.9311.9839.785.4346.2312.13 radiosity50.8715.9253.1510.4136.296.72 water27.867.3729.856.0125.724.50 Mean50.7518.6239.3910.9331.527.12 Median54.0820.6637.4511.0933.156.10 12
13
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Outline Introduction Execution Model and System Architecture Multicore Emulator Front-End Component Models Cores Network Memory System Building and Running Manifold Simulations Physical Modeling: Energy Introspector Some Example Simulators 13
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.