Server Hardware • Mission-critical • High reliability • redundancy • Massive storage (disk) • RAID for redundancy • High performance through replication of components • Multiple processors • Multiple buses • Multiple hard drives • Multiple network interfaces
PC PC PC PC PC PC PC Computing Paradigms Mainframe Terminal Terminal Terminal “Old” computing paradigm: mainframe/terminal with centralized processing and storage Terminal Failed 1st client/server computing paradigm: Decentralized processing and storage Server Successful 2nd client/server computing paradigm: strong centralized processing and storage SERVER
Evolving Computing Paradigm Processing and Storage Centralized Decentralized 1950 1960 1970 1980 1990 2000 ?
Mainframe: the ultimate server • Client/server architecture was originally predicted to bring about the demise of the mainframe. • Critical corporate data must reside on a highly reliable high performance machine • Early PC networks did not have the needed performance or reliability • NOW (Network Of Workstations) • LAN (Local Area Network) • Some firms, after experience with client/server problems, returned to the mainframe for critical corporate data and functions • Modern computing paradigm combines • powerful servers (including mainframes when needed) where critical corporate data and information resides • With decentralized processing and non-critical storage on PCs • Interconnected with a network
Multiprocessor Servers • Multiprocessor servers offer high performance at much lower cost than a mainframe • Combine multiple PCs or workstations in one box • Processors cooperate to complete the work • Processors share resources and memory • A form of parallel processing
5 Parallel Levels My research has identified 5 levels of parallelism Each level has both a software level parallelism, and a hardware implementation that can accommodate the software parallelism 1. Intra-Instruction (pipeline) 2. Inter-Instruction (super-scalar - multiple pipelines) 3. Algorithm (objects/threads) (multiprocessors, multicomputers) 4. Multi-Process (clustered multiprocessors) 5. N-tiered Client Server Architectures (internet/web distributed computer) Sources: • The Unified Parallel Speedup Model and Simulator, K. Hoganson, SE-ACM 2001, March 2001 • Alternative Mechanisms to Achieve Parallel Speedup, K. Hoganson, First IEEE Online Symposium for Electronics Engineers, IEEE Society, November 2000. • Workload Execution Strategies and Parallel Speedup on Clustered Computers, K. Hoganson, IEEE Transactions on Computers, Vol. 48, No. 11, November 1999.
Terminology • Thread - a lightweight process, easy (efficient) to multi-task between. • Multiprocessor - a computer system with multiple processors combined in a single system (in a single box or frame). Usually share memory and other resources between processors. • Multicomputer - multiple discrete computers with separate memory and etc. Interconnected with a network. • Clustered computer - a multiprocessor OR multicomputer that builds two levels of interconnection between processors • Intra-Cluster connection (within cluster) • Inter-Cluster connection (between clusters) • Distributed Computer - a loosely coupled multicomputer – a n-Tiered Client/Server computing system is an example of distributed computing
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU Cache Cache Cache Clustered Multiprocessor I/O MEM MEM I/O
CPU CPU CPU MEM MEM MEM I/O I/O I/O I/O I/O I/O NIC NIC NIC Multi-Computer
C C - Client Workstation S - Data Server G - Gateway W - Web Host Server LAN S C C Client Tier Server Tier W S C LAN LAN Internet W G G S C Figure 2. N-Tier Architectures W S C PA3 & AveLat3 PA2 & AveLat2 Client Tier (1) Server Tier (2) Server Tier (3) Level 5 N-Tier Client-Server
Flynn’s Classification • Old idea, still useful. • Examines parallelism from the point of view of what is the parallel scope of an instruction • SISD - Single Instruction, Single Data: Each instruction operates on a single data item • SIMD - Single Instruction, Multiple Data: Each instruction operates on multiple data items simultaneously (classic supercomputing) • MIMD - Multiple Instruction, Multiple Data: Separate Instruction/Data streams. Super-scalar, multiprocessors, multicomputers. • MISD - Multiple Instruction Single Data: No know examples
Symmetric Multiprocessing • Asymmetric Multiprocessing: • multiple unique processors, each dedicated to a special function • PC is an example • Symmetric Multiprocessing: • multiple identical processors able to work together on parallel problems • Homogenous system: a symmetric multiprocessor • Heterogenous system: different “makes” of processors combined in a system. Example: distributed system with different types of PCs with different processors