This video shows an example of a GraphQL API improvement achieved using WarpJS MCP.
Just after loading, the client sends one GraphQL request per article. On the left side, you will get the original version of the website using a standard GraphQL on Node.js.
On the right side, we used WarpJS Multi Core Processing to parallelize the GraphQL requests.
By using the server at its full potential (in this example, 8 CPUs), loading time is reduced from 5.5s to 2.3s!
Some use cases
API/Proxy ExpressJS Server
Warp all ExpressJS requests to support more requests at a time, or warp inside a request to reduce request time. Using GraphQL, fetch your data more quickly. Create a high performance gateway/proxy for your queries.
Machine learning: TensorFlow
Warp each inference to support more requests, or warp inside a TensorFlow request to reduce inference time.
Convert images or compress content on the fly very quickly. Create your own gateway/proxy to reduce the content size to download and save loading time.
Do faster preprocessing in parallel on the server and reduce your response time.
Your use case?
We designed a set of benchmark to measure the number of server requests per second without/with WarpJS. On average, the number of requests per second is increased by a factor 5.5 for a 8-CPU machine!
'ab' tool has been used to get the results.
Server used: CPU Intel i7-7700 4 cores/8 threads - 4.2GHz - 32GB RAM.
This benchmark realizes for one request a graphQL query. It shows we can have a significant boost with just few line of code changes.
In this benchmark, each request realizes a tensorflow inference, again small code changes have been done to get this benchmark warped.
The request processes a JSON data and computes results to be sent back to the frontend.
Each request transforms one image to be blurred with different levels using the JSManipulate library.
This benchmark multiply 2 matrices at each request. In that case we have applied Warp to accelerate the matrix multiplication operator.
We've also run two benchmarks on different server configurations (on Google Cloud Engine), starting from a 1 CPU to a 96 CPU machine, in order to analyze the linearity of the WarpJS acceleration.
The computation benchmark results showed that the speedup achieved with WarpJS is excellent. It is very close to the linear theoretical speedup (90 for 96 CPU machine). The graph below shows that the WarpJS use of all CPUs is nominal.
For TensorFlow inferences, the speedup is also linear, proving again the excellent parallelization achieved with WarpJS Multi Core Processing.
How to use
WarpJS can be used directly on your business code using our WarpJS API and our Visual Studio Code extension. It is compatible with your existing building process.
Have a look at our product documentation for device/server to know how to build and execute your code.
Use WarpJS API on your proprietary code using our SDK and VSCode extension
Use one of our 'warped' script or module ready to import in your projects
Some supported packages
Get your lib compatible with WarpJS
By implementing the Warp API, you can get your lib compatible with WarpJS. As a result, all the applications including your lib will be eligible to run at warp speed! Read the documentation to learn how to implement the warp API.