Generally speaking, performance is difficult to determine without going into details about your implementation so I can't really offer much advice beyond a few tips:
As the commenters mention, PHP isn't designed for number crunching; something like Python, Java, or C++ are far better suited to this kind of task.
Is 30 minutes a reasonable amount of time for the task to take? Assuming it takes 10 minutes less, will that actually be worth spending money on? Better planning and running jobs overnight is far cheaper :)
As far as alternatives go you could try running your jobs on an Amazon EC2 instance, which may give you a bit of a speed boost but you'll still be running on one core; so your simulation will run roughly as quickly, ignoring input/output.
If you actually want to optimise it, profile your application. You need to know where the time's being spent so you can figure out which parts you should spend time optimising; once you know which part of the code takes so long you should be able to try different approaches to get it working faster. Make sure you know the quirks of PHP, there are some surprising performance differences you might not be aware of. Optimisation can help, but always make sure your time spent doing it is going to be worth the time it saves.