computes
v1.0.28
Published
computes.io distributed supercomputer
Maintainers
Readme
Computes NPM Module
NPM module for connecting Computes.io kernels to the Computes supercomputer and ultimately interacting with cores.
This example computes 9000! simultaneously across 3 cores.
var computes = require("computes");
var bigInt = require("big-integer");
var operation = "(function(data) { var result=1;for (var i = data*3000+1; i <= data*3000+3000; ++i){result = bigInt(result).multiply(i).toString();}return result; })";
// var operation = "https://gist.githubusercontent.com/computes/df86808c4a9d0a0d489a/raw/11c92b86662a4df5b5db585a1442796333bd1934/test.js";
// Set options
var options = {
domain: "domain_key_from_computes.io",
priority: "normal", //'low', 'normal' & 'high'
ttl: 60000, // milliseconds
delay: 0 //milliseconds
};
// Connect kernel to computes
var job = computes.connect(options.domain);
job.on("ready", function (){
// Update memory object
job.memory({"counter":0});
// Submit operations
for(var data = 0; data < 3; data++) {
job.compute(operation, data, options);
}
});
var jobCount = 0
// Fired as cores return results
job.on("result", function (result){
console.log(result);
jobCount++;
if (jobCount == 3){
job.disconnect();
}
});
// Fired by webhooks or messages from cores etc.
job.on("message", function (message){
console.log(message);
});
// Fired when memory changes by kernel or cores
job.on("memory", function (ram){
console.log("npm", ram);
});
Notes:
- Options are optional
- Operation can also be a URL such as a raw gist i.e. https://gist.githubusercontent.com/computes/df86808c4a9d0a0d489a/raw/11c92b86662a4df5b5db585a1442796333bd1934/test.js
API commands include:
- connect
- disconnect
- compute
- execute
- cancel
- message
- memory
