You could use IronWorker for this, the steps would most likely be something like this:
- Upload your algorithm as a worker to IronWorker
- Built your API to allow your users to call whichever function they need
- Your API would then queue up an IronWorker task for your genetics worker
- You mentioned you wanted it asynchronous, so once the worker completes, it could callback to an endpoint that your user provides (webhook) with the results (or it could wait and respond synchronously, depending on how long your algorithm takes to run)
Docs on IronWorker: http://dev.iron.io/worker/