|
Department of Engineering |
|
|
Scientific Computing
This page summarises some issues revelant to writing computing-intensive programs
Language
Not all of a program is going to be number-crunching - you need to get the
data in, call other programs, and display the results. The computing
service suggest python as the 'glue' language. At CUED we also have
matlab, which although not free has good graphics capabilities and
thousands of functions. Both matlab and python may be fast enough to
do all but the most intensive parts of your work. Fortran, C and C++ are
often used for number crunching
How Computers Work
It helps to know the basics of how computers work
- Memory/cache - doing the same operations in a different order may triple speed of calculation because of cache effects
- CPUs/cores - our linux servers each have 4 dual-core CPUs - how can these
be exploited? It's hard to write a program to explicitly exploit dual-core multi-CPU
systems. Languages like C Omega and F sharp are being developed to assist
programmers, but for now you'll have to hope that the Operating System
exploits the possibilities. If you're lucky, newer releases of the program you use might be
written to exploit it transparently (newer Photoshops sometimes do). A few
programs (e.g. the newest matlab) may offer you the chance to explicitly
exploit parallelism.
- Processes/threads
- Numbers - how do computers store numbers?
Programming
Available Hardware
Grid/HPC
Support