[CS61C FA20] Lecture 34.1 - Thread-Level Parallelism II: Parallel Programming Languages — Transcript
Full transcript
- 0:00and welcome back this is the
- 0:03part of lecture entitled thread level
- 0:06parallelism part two
- 0:07and the meta goal here is to understand
- 0:10from the software point of view
- 0:12how can we how can we make it easier for
- 0:14the programmer to deal with all these
- 0:15threads
- 0:16how do we do this we've got a machine
- 0:17that's multi-core many logical cpu is
- 0:20available
- 0:20how do i write software to be able to
- 0:22make use of all of that if i have a
- 0:23really big problem that needs that
- 0:25certainly i could run if i had let's say
- 0:27eight logical cpus i can run eight
- 0:28different programs and then i feel good
- 0:29about that eighth improvement i got a
- 0:31quick time and i got a web browser and i
- 0:32got a
- 0:33that's fine terminal running a dot out
- 0:36but what if i have one program that
- 0:37wants to use all of them what can i do
- 0:39so part of that
- 0:40part of this goal this series of
- 0:41lectures to understand what software
- 0:42support we have
- 0:43we're going to do that so let's let's
- 0:44step back we've got choice of
- 0:46programming languages so let's talk
- 0:47about parallel programming languages
- 0:49and what's out there in this in the
- 0:50space
- 0:52these are the languages supporting
- 0:53parallel programming
- 0:55it's a lot it's a ton
- 0:59um and uh i will point out that the one
- 1:03language that folks are telling me is
- 1:05just maybe the one to do it right a lot
- 1:06of people different different
- 1:08attempts at this go go is a really nice
- 1:11language
- 1:12i haven't programmed a little a little
- 1:14baby toy program but i haven't forgotten
- 1:15a lot in that
- 1:16but i've heard that go people who are in
- 1:18this space think that go might be the
- 1:19future
- 1:20to be able to a really clean way so play
- 1:22with go and explore that if you want to
- 1:23explore this is more
- 1:24but there's a lot of things here for
- 1:25different reasons uh cuda is how you
- 1:27drive your gpu lots of different things
- 1:29are here
- 1:30um we're saying to this with current
- 1:32with currently with with c so how which
- 1:34one to pick
- 1:34let's talk about this well why do we
- 1:36have so many let's step back why do we
- 1:38have so many well first of all why do we
- 1:39have intrinsics
- 1:41the reason we have intrinsics is because
- 1:43um the compilers don't support it we
- 1:45intrinsics are a way of dropping code
- 1:46directly in the assembly level because
- 1:48it doesn't know how to
- 1:49generate that automatically so that's a
- 1:51little bit annoying and so we're trying
- 1:52to try to encourage intel
- 1:53and other folks to fix your compilers uh
- 1:55so that'll do it automatically for us
- 1:57um cimd features are continually
- 2:01being added compilers is really nice we
- 2:03appreciate that it is certainly an area
- 2:05of research
- 2:06people who are in and professor kathy
- 2:08yellick in our department
- 2:10is kind of at the intersection of both
- 2:12of these pieces she's a programming
- 2:13language person
- 2:14who cares about parallelism she's
- 2:15exactly at the space the intersection of
- 2:17how do you get
- 2:18programming languages to wake up and
- 2:19realize we got to make it easier for
- 2:21people to write parallel programs
- 2:23um so there's been a you know 20 plus
- 2:25years of thinking about how to take old
- 2:27school c
- 2:28and auto paralyze it to become really
- 2:31fast assembly
- 2:32um so first of all sorry 20 plus years
- 2:35of taking c
- 2:36and making fast assembly without
- 2:38parallelization so there's that
- 2:40how long will it take them to figure out
- 2:41how to take c and
- 2:43auto paralyze it if i can automatically
- 2:45generate assembly and really be clever
- 2:47about optimizations boy you should see
- 2:48all the optimizations that the new
- 2:49assemblers
- 2:50have i mean the new compilers have which
- 2:51eventually becomes the assemblies but
- 2:53the compilers do to become assembly
- 2:54language
- 2:55that that first compile level is
- 2:57remarkable
- 2:58um so it's really compiler technology
- 3:00how can we do the same thing for
- 3:02parallelization i've got a boring c
- 3:04code and i can really write pretty good
- 3:05assembly that's if it's not parallel but
- 3:07if it is a parallel it's a still harder
- 3:08problem
- 3:10we think it was an open problem still we
- 3:12have you know great cases and very
- 3:14simple things there is
- 3:15there is automatically handled loops in
- 3:17an interesting way um that's coming up
- 3:19but it's it
- 3:20it's requires a lot of work here's your
- 3:22opportunity to become
- 3:23famous if you decide if you have some
- 3:25breakthrough talk to personaelic and
- 3:27relative
- 3:27related people in our department if
- 3:29you're interested in that space
- 3:31so the number of choices is an
- 3:33indication that there is no universal
- 3:35solution there isn't just this easy
- 3:36answer that somebody
- 3:37owned somebody just owns that space and
- 3:38you know there's there's a couple
- 3:40you know there there there there there
- 3:42isn't really a clear sense so everyone
- 3:44says well
- 3:44it's not solved yet i'll make my own and
- 3:46now i'll make my own two and
- 3:47me too me too me three and you have all
- 3:50these people clamoring because nobody's
- 3:51really one
- 3:52um and the needs are very specific you
- 3:54have people operating at very large
- 3:56scale levels with massive data
- 3:57you work in a very small micro level
- 3:59with the multiple core space
- 4:01you know i huge data a million machines
- 4:04computers
- 4:05all parts of the world in the
- 4:06distributed computing space and i have
- 4:08also
- 4:08i want to be able to work on just a very
- 4:10small problem but i want to be able to
- 4:11have
- 4:12um you know eight cores all be very fast
- 4:14one computer so that's a different set
- 4:16at a different scale and so these
- 4:17languages are kind of optimized for
- 4:18different things
- 4:20um for example scientific computing
- 4:22matrix multiply
- 4:23uh machine machine learning we've got
- 4:25that i've got a web server handling
- 4:27multiple requests that's usually
- 4:28distributed computing space
- 4:29io is happening simultaneously anybody
- 4:31any web server anybody running a web
- 4:33server knows that
- 4:34how do you make that work um languages
- 4:36are special specialized for different
- 4:38tasks we've seen that before
- 4:39um here's a problem not as particularly
- 4:41easy to use of all these
- 4:43um and what we're gonna teach you in
- 4:44621c is parallel
- 4:46language examples for high performance
- 4:48computing we're gonna teach you openmp
- 4:50in the next couple of lectures and after
- 4:51that we'll teach you mapreduce so
- 4:52two things that are really powerful and
- 4:54high level and spark and all those
- 4:56things will teach you that idea as well
- 4:57so that's what we're going to do in 61c
- 5:00and we'll next lecture we'll teach you
- 5:02opennp
- 5:02we'll see you there
About this transcript
This page contains the full transcript of [CS61C FA20] Lecture 34.1 - Thread-Level Parallelism II: Parallel Programming Languages by CS 61C Departmental, generated from the public captions YouTube serves with the video. The transcript has 1,114 words across 188 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.