Meta-stuff about doing the PhD, as opposed to research that's going towards my thesis.
UKMS seminar
The Systems Engineering Research Group had a meeting on Thursday, and I appear to have volunteered to give a seminar on the UK Mirror Service stuff I was doing over the summer. (This was entirely my fault, since I was one of the people who said that SERG should have more seminars...)
Peter Welch has booked COLT2 for 2PM on Wednesday 10th November.
I'll come up with some slides based on the papers I've been working on
by then; I tried OpenOffice.org's presentation stuff for the
about-your-research group presentation I did last week, which seemed to
work, but I'd rather use something like the LaTeX prosper package and
xpdf in full-screen mode (which, I think, is what Fred uses).
KoIL diagram from my notebook
I keep rough notes in an A4 notebook; it's particularly good for sketching diagrams in, since I'm hopeless at drawing on computers. Here's a sample page: a process diagram for KoIL.
Don't expect to be able to read my writing.
Induction, week 3
All new postgrads in the CS department at Kent get an induction: some basic information about what facilities and people are available in the department, and some tips on how to end up with a PhD (or a Master's, depending). Here are some of my notes from the first session.
Future sessions will be on Tuesdays at 11AM in S110B. For next week, each research group's students should put together a 5-10 minute presentation about their group. (They were planning to do two per week, although looking at the distribution of research groups, I'm not sure how well that'll work...)
At the start, everybody introduced themselves and said briefly what they were working on. The first session included the following new students (in clockwise order round the table):
- Ed, ebc3, AII: finding out why artificial immune systems work.
- Patrick, pc52, AII: modelling the operation of the brain.
- Thomas, tpk1, AII: using artifical immune systems for computer security.
- Tom, tatd2, TCS: tracing in functional languages.
- Chris, cmb21, TCS: refactoring in functional languages.
- Nick, nh56, AII: swarm intelligence.
- Alex, ag84, AII: synthesising instruments based on descriptions of the sound.
- Myo, mta6, NDS: network intrusion detection systems.
- Allen, ac207, AII: data mining using swarm intelligence.
- Damien, djd20, SE: graphics for occam systems.
- Martyn, mt63, AII: graph visualisation.
- Adam (me), ats1, SE: occam operating system components.
- Paul, pa40, AII: artificial immune systems.
- Sebastien, sm244, TCS: garbage collection.
- Lukas, ls85, AII: Bayesian filtering for mobile applications.
Sally Fincher gave feedback on the descriptions as we went round the table, so they steadily got better the further we got. Some of the things that we concluded were useful in "what do you do?" descriptions:
- have a ten-second version, then a one-minute version, then a ten-minute version for people who're really interested
- make it accessible to non-CS people (Sebastien's garbage collection project is a good example here!)
- say where you're working
- say why it's interesting
- say who you're working with and why (if it's relevant)
- put your project in context
I think there are at least a couple of new postgrads who weren't able to make it. It didn't strike me until I worked out everybody's research group just now quite how many people are in AII compared to the other research groups.
Some book recommendations:
- "How To Get A PhD"
- "The Unwritten Rules Of PhD Research" (not as good on its own as the former, but a useful companion to it)
- "Networking On The Network"
- "Bugs In Writing"
- "Style: Ten Lessons in Clarity and Grace"
A few questions to think about, with regards to doing a PhD, which provoked some interesting discussion about what people actually wanted:
- What do you want?
- How are you going to get it?
- How might you stop yourself?
- How will you know when you've got it?
The activity weekend this year will be 19th-21st November (Friday to sunday).
Planet CS
I know that I'm not the only person who's got a research-related RSS feed at Kent. It'd be nice to have a "Planet CS" site (similar to Planet GNOME et al) that aggregates all the appropriate feeds; not only would this be useful for us, but it'd be good marketing for the department too.
Original PhD proposal
(This is the proposal I submitted originally.)
Parallelism is a key programming technique that can be usefully exploited in a wide variety of applications. Today, programmers are increasingly turning to parallelism as a way of overcoming the limitations of mainstream sequential languages. However, most popular environments provide little explicit support for parallelism, leading to the common view that "concurrency is hard".
The occam programming language is well suited to the development of parallel programs: it provides excellent native support for concurrency, based on the compositional semantics of CSP (Communicating Sequential Processes), and provides a natural way of expressing parallelism in highly-scalable applications. Additionally, the occam compiler's rigorous correctness checking prevents many types of common programmer error endemic to parallel programming in other languages.
Ongoing research at the University of Kent has produced a new variant of this language, occam-pi, removing many of occam's original limitations and introducing features found in other modern programming languages, including data, process and channel mobility (a key idea in the pi-calculus).
A thriving area of research is that of highly concurrent operating systems. Operating systems are the core software components of all computing platforms, from small embedded systems in electronic devices to large distributed systems spanning global networks.
Most current operating systems follow traditional sequential designs, largely unchanged since the 1960s. Consequences of this include poor scalability, difficulty in distributing problems among multiple systems, and convoluted internal logic where resources must be shared between concurrent activities. Ever-increasing requirements for computing power are driving forward the development of parallel hardware; multi-processor systems are becoming increasingly common. Systems software designed explicitly for parallelism is required to make optimal use of such hardware.
The occam-pi language's parallel and low-level programming features make it ideal for the development of highly-parallel operating systems. To date, a fairly basic but functional demonstrator of a concurrent operating system written using occam-pi exists: "RMoX".
This research project aims to investigate further the use of concurrency within operating systems: in particular, filesystems, network stacks and process management for highly-concurrent systems.
Filesystems can exploit concurrency and distribution on several levels. Lack of internal concurrency has traditionally caused performance limitations on conventional filesystems. Operating systems for distributed clusters of machines have additional requirements for performance and fault tolerance while maintaining data integrity; such filesystems are of increasing interest to operators of large network services as means of reliably processing vast quantities of data.
While network stacks are required to deal with many parallel streams of data, they are usually written with sequential logic. The application of parallel-programming techniques has the potential to increase performance, reliability, maintainability and security of network software. Reliable parallel applications may also require features not offered by existing network protocols and software.
Current occam-pi systems do not fully exploit the potential of hardware parallelism. Support for running concurrent programs on multiple-processor and distributed systems will make it possible to address much larger problems at lower costs using modern commodity hardware.
This research will help develop RMoX from a prototype into a usable operating system providing unprecedented levels of performance, security and reliability.
- Latest articles
- All articles (by name)
- All articles (by date)