Actuarial cycle time

(Oct 21, 2021)

The ongoing COVID-19 pandemic has introduced millions of ordinary people to some basic aspects of epidemiology, such as the R number to measure the reproductive ability of a virus.  However, there is another aspect to virus reproduction that is possibly even more important: cycle time.  This was pointed out recently by the epidemiologist Larry Brilliant, when he described the Delta variant of SARS-Cov-2 as "the most infectious disease of our lifetimes":

Sometimes we think of measles or chickenpox as the most explosive. What people get wrong, including a lot of my friends, is that they're forgetting about the cycle time. The incubation period of measles and chickenpox are approximately two weeks. The Delta…

Read more

Tags: productivity, software, parallel processing

Parallel (Va)R

(Oct 11, 2012)

One of our services, the Projections Toolkit, is a collaboration with Heriot-Watt University.  Implementing stochastic projections can be a tricky business, so it is good to have the right people on the job.  Although our development platform is traditionally Java and C++ based, one consequence of our collaboration is that parts of the system are now written in R.

R has a number of notable positive attributes, including thriving development and user communities, powerful graphics capabilities, expressive language features and a comprehensive module library.  However, blistering raw performance, and more specifically multi-processor performance, are not features standard R would lay claim to.  Standard…

Read more

Tags: parallel processing, technology

Following the thread

(Sep 18, 2012)

Gavin recently explored the topic of threads and parallel processing.  But what does this mean from a business perspective?  Well, parallel processing can result in considerable speed increases for certain actuarial and statistical calculations. If done well, spreading the workload over four threads (say) can reduce the execution time to almost a quarter of its single-threaded equivalent. Many complicated actuarial calculations lend themselves well to multi-threading, and thus considerable reductions in run-times.  A good example of this is simulation, which plays a major role in Solvency II work.  To illustrate, Table 1 shows the execution time for 10,000 run-off simulations of a large annuity…

Read more

Tags: threads, parallel processing, simulation, Solvency II, technology

Competitive eating

(Sep 17, 2012)

I've previously suggested parallel processing might have a touch of the infernal about it, and further evidence might be how it allows us to usefully indulge in one of the seven deadly sins, that of gluttony. Interestingly this link between concurrency and food was also explored in a famous problem in software design, that of the "Dining philosophers".  Here some hungry philosophers with insufficient forks must compete for utensils in such a way as to avoid deadlocks, race conditions and ultimately starvation.  This problem is a reminder of how tricky it can be to safely mediate concurrent access to resources.

Software developers have always had a responsibility to consider how system resources will be consumed.…

Read more

Tags: parallel processing, technology

Parallel processing

(Sep 28, 2008)

A colleague of mine once described parallel processing as the "work of the devil". I don't know if I'd go quite this far - this statement was made in the early nineties, when technology was that little bit less advanced than it is today. It is undeniable however that dividing work efficiently, robustly and scalably over multiple processors has always been, and remains, a non-trivial task.

Parallel processing in a nutshell means performing program steps simultaneously instead of one after another (which is serial processing). To do this of course requires a platform with multiple CPUs, for which we have two major options:

  1. Clustering - presenting one or more services from a collection of loosely coupled…

Read more

Tags: parallel processing, technology

Find by key-word

Find by date

Find by tag (show all )