• No results found

Multi-core Programming System Overview

N/A
N/A
Protected

Academic year: 2021

Share "Multi-core Programming System Overview"

Copied!
10
0
0

Loading.... (view fulltext now)

Full text

(1)

Multi-core Programming System Overview

Based on slides from Intel Software College and Multi-Core Programming – increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,

Intel®Software College

Defining Threads

• Thread : discrete sequence of related instructions that is executed independently of other instruction sequences

• Every program has at least one thread – main thread

• It can create other threads

• Each thread maintains a machine state

• OS maps software threads to hardware execution resources

• Too much threading can hurt performance

(2)

2

3

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

System View of Threads

• User User- -level Threads level Threads

created in application softwarecreated in application software

• Kernel Kernel- -level Threads level Threads

way OS implements threadsway OS implements threads

• Hardware Threads Hardware Threads

how threads appear to how threads appear to execution resources execution resources

A program thread is implemented by A program thread is implemented by OS as a kernel

OS as a kernel--level thread and level thread and executed as a hardware thread executed as a hardware thread

4

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Intel®Software College

Threading above OS

• • Can rely on run- Can rely on run -time framework time framework

•Known as managed code

• managed environments include Java Virtual Machine (JVM) and Microsoft’s Common Language Runtime (CLR)

• Do not provide scheduling – rely on OS

• • If don’ If don ’t then thread creation is call to system API t then thread creation is call to system API

• • executed as call to OS kernel to create thread executed as call to OS kernel to create thread

• • figure shows thread flow in this case figure shows thread flow in this case

(3)

5

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

APIs for Threading

• Common APIs

• OpenMP

• Ease of use

• More developer friendly implementation

• Requires compiler which supports – C/C++ or Fortran

• Explicit low-level threads such as pThreads and Windows threads

• Requires significantly more code

• Give fine-grained control

• Only requires access to OS’s libraries

Intel®Software College

Threading in OpenMP and pThreads

• Hello World

OpenMP

• No explicit thread creation

pThreads

• Thread created using pthread_create()

(4)

4

7

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Threads inside OS

• Kernel maintains Kernel maintains tables for processes tables for processes and threads

and threads

• OpenMP OpenMP and and pThreads

pThreads use Kernel use Kernel level threads

level threads

• Windows supports Windows supports both kernel and user both kernel and user level threads

level threads

• Kernel level – Kernel level – more overhead but more overhead but better performance better performance

• Windows user Windows user- -level threads (fibers) level threads (fibers) – – programmer must programmer must create management infrastructure and schedule threads create management infrastructure and schedule threads manually

manually

8

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Intel®Software College

Processes

• Processes – course level execution units

• Have own address space

• Processes can have multiple threads

• Threads share address space

• See same functions, data

• If one thread changes data, all see

• If one thread opens file, all can read from it

• Each thread has registers, stack, some other data

• Have simple inter-thread communication

• OS maintains

• a Process Control Block (PCB) for each process

• process identity, machine state, priority, address of virtual memory, file descriptors, user ID

• in kernel space – requires system call (trap to OS) to access

• A thread table for all threads (not normally per process table)

(5)

9

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Processes and Threads

• Memory is allocated to processes by the Memory Memory is allocated to processes by the Memory Management Unit (MMU)

Management Unit (MMU)

• Threads are mapped to CPUs by scheduler Threads are mapped to CPUs by scheduler

processor affinityprocessor affinity

– – enables user to request specific enables user to request specific CPU for thread. Not guaranteed that OS will grant.

CPU for thread. Not guaranteed that OS will grant.

Intel®Software College

Thread to Processor Mapping – 1:1

(6)

6

11

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Thread to Processor Mapping – M:1

12

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Intel®Software College

Thread to Processor Mapping – M:N

(7)

13

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Thread to Processor Mapping

• 1:1

• No thread-library scheduler overhead

• OS handles scheduling

• Called preemptive multi-threading

• Linux, Windows 2000, Windows XP use this

• Enables stronger handling of threads by OS

• We will concentrate on this model

• M:1 many to one

• thread-library scheduler decides which thread gets priority

• Called cooperative multi-threading

Intel®Software College

Difference between Concurrency and Parallelism

• • Parallelism Parallelism – – Chip Chip Multithreading (CMT) Multithreading (CMT)

• • multiprocessor, multiprocessor, multicore

multicore

• • Concurrency Concurrency - - Simultaneous Simultaneous

Multithreading (SMT) Multithreading (SMT)

• • hyperthreading hyperthreading

• • For true parallelism For true parallelism – – program threads <=

program threads <=

hardware threads hardware threads

• • Too many threads can slow performance Too many threads can slow performance

(8)

8

15

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Thread Creation

• Each thread has own stack Each thread has own stack space

space

• Default thread stack size Default thread stack size varies with OS

varies with OS

• Need to be aware of this Need to be aware of this

16

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Intel®Software College

Thread States

• Ready Ready

• Running Running

• Waiting Waiting (Blocked) (Blocked)

• Terminated Terminated

•Substates Substates give reason for give reason for entering e.g.

entering e.g.

blocked on I/O blocked on I/O etc

etc

(9)

17

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Virtual Environments

• Virtualization : creating the appearance of a different set of resources

• Runtime virtualization e.g. Java VM (JVM) or MS CLR

• Creates appearance Java appl running in private environment

• JVM is container and executor appl

• Create at least 3 threads for execution, garbage collection, just- in-time (JIT) compilation

• Generally more threads for internal tasks

• System virtualization

• Creates appearance of virtual machine with own independent OS

Intel®Software College

System virtualization

Complete virtual execution context

• virtualized NIC, disks, OS

• can be several VM on hardware

Virtual Machine Monitor (VMM) or hypervisor

• intermediate layer

(10)

10

19

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

VMM role

• VMM gives each VM illusion owns hardware

• presents virtual processors (VP) to guest OS on VM

• Number equal to number of cores

• Creates isolation of instruction set architecture (ISA)

• What of privileged instruction ?

• VMM and VM are applications – cannot execute

• Priviliged insts are trapped by VM and call made to VMM

• VMM may be able to handle or

• may pass on to host OS, wait for response, emulate response in VM

• Performance cost

• to minimize Intel has provided extensions to ISA to allow VMM to efficiently execute priviliged insts

• Part of Intel Virtualization Technology

20

Copyright © 2006, Intel Corporation. All rights reserved.

Threading Basics

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. *Other brands and names are the property of their respective owners.

Intel®Software College

Mapping Application threads

• VMM does very little

• When VM creates threads, handled by guest OS

• When guest OS schedules thread, virtual processor executes

• VMM does not match appl threads to particular cores

• Only time VMM is involved is when swaps out a VM or performs internal tasks

• Can be issue when thread is locked and waiting for thread on virtual processor that is swapped out

• Thread has substantial delay – problem known as lock-holder preemption

• One of problems that can arise in virtualization

References

Related documents

In Funeral in Berlin, the novel opens at a specific address in south west London, Bina Gardens (p1); although Berlin may be in the book title the links to home

For Masters students, the Review Committee will consist of the supervisor, at least two other faculty members whose work is related to the student=s field of interest and a Chair

The low structural height, the high track-geometry quality for assurance of functionality and long life cycles, as well as the permanent bonding of track concrete layer

Intel, the Intel logo, Intel Core, Core Inside, Xeon and Xeon Inside are registered trademarks of Intel Corporation in the U.S. and other

Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or

In this work we have compared the structural behavior of two amphiphilic AMPs with fundamentally different primary and secondary structures: the α-helical PGLa and the cyclic

Pri vytváraní poškodení inštalatérskymi kliešťami bolo použité vozidlo Škoda Favorit 136L z roku 1992, konkrétne jeho pravý zadný blatník, na ktorom bola hrúbka laku 62

Immediate assi#nment success rate indicates t/e success rate of t/e MS accessin# t/e si#nalin# c/annel9 It concerns t/e &#34;rocedure from t/e MS sendin# a c/annel re&gt;uired