MIRIAD is a set of unix programs that read and write files. Sometimes these files can be very large and occupy large amounts of memory. For some problems this will not fit in memory and program can cause the system to swap. Task like top are useful to see if your task is spending 100% on the cpu, or perhaps swapping or spending time on I/O.
For those using MIRIAD in a networked environment, you should make sure no significant I/O takes place to NFS or other slow devices.
Some programs that use scratch I/O the $TMPDIR environment variable can be abused to let MIRIAD using a faster device (.e.g /dev/shm is sometimes mapped to section of memory). The invert task is one example where you might benefit. Remember each channel in a visibility takes up 8 bytes in the scratch file, e.g.
setenv TMPDIR /dev/shm invert vis=.. beam=.. map=.. ... unsetenv TMPDIR