kent logo

CO538 Anonymous Questions and Answers Keyword Index

This page provides a keyword index to questions and answers. Clicking on a keyword will take you to a page containing all questions and answers for that keyword, grouped by year.

To submit a question, use the anonymous questions page. You may find the keyword index and/or top-level index useful for locating past questions and answers.

Keyword reference for course


Question 3 (2009):

Submission reference: IN1800

What is the gain from learning about concurrency with occam-pi?

This is from the concern that with concurrency being such a large issue today (and in the future) wouldn't it be more practical for students to be learning more mainstream concurrency models/libraries/languages/whatever? For example JCSP, OpenMP, Erlang, or just get lots of teaching about using threads.

Answer 3:

The short answer is because we want you to gain an understanding of concurrency, not just know how to use specific implementations. Moreover, we want to teach you how concurrency can be used as a fundamental design method, and not just as a means to attaining speedup on multiprocessor/multicore platforms. The majority of implementations of "concurrency" ideas suffer from crippling performance overheads, which limits the scope of these ideas to getting speedup on multicore platforms. Only a handful of languages cater specifically for concurrent/parallel programming (although this list is growing!); occam-pi and Erlang are certainly two of these. However, their approaches to concurrency are somewhat different. We believe (with some scientific foundation) that the approach embodied in occam-pi, of processes and communication, is easy, both to learn and apply. Furthermore, there are a handful of experts close by — see the Programming Languages and Systems pages.

Importantly, this module will give you an understanding of concurrency that you can take and apply with specific languages (Java/JCSP, OpenMP, MPI, Erlang, pthreads, ...), as well as put you in a position to understand their limitations.

Keywords: course


Question 3 (2007):

Submission reference: IN1285

A number of the links on the web page are not working. Any idea when they will be active again? I enjoyed the lecture yesterday btw. Thanks

Answer 3:

Which links in particular? — they all work fine for me when I try them!

Keywords: course


Question 38 (2002):

Taken from the module webpage:

The course does not take a historical approach (e.g. through the study of semaphores, monitors and traditional threads standards such as posix)

Yet your notes say that fork is a simple semaphore - why are we set an assignment using something we haven't studied?

Answer 38:

The course neither teaches nor requires any knowledge of semaphores, monitors, posix etc.. Slide 6-60 defines a fork process purely in terms of channel communication and ALTing. In passing, it notes that a fork is a simple semaphore. If you had been at the lecture, you would have known that this is a remark directed at anyone who happens to know about semaphores and might be interested in comparing ideas. If you don't know what a semaphore is, the remark can be safely ignored until such time that you do. In no way are you expected to know anything about them for this course, its assignments or its exam.

Keywords: course

Valid CSS!

Valid XHTML 1.0!

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
Last modified Mon May 20 13:50:26 2013
This document is maintained by Fred Barnes, to whom any comments and corrections should be addressed.