Closed CodingYuanLiu closed 3 years ago
Hi,
You're right that our current implementation assumes that the serverless implementation will be AWS Lambda. However, it should be possible to implement a module specific to OW so that you can run your own serverless threads.
You can implement a new ResourceComm
module as seen in src/graph-server/resource_comm.hpp
which is a virtual class that can implement different backends. You can follow our example of src/graph-server/lambda_comm.hpp
which starts by initializing several listener threads (LambdaWorker
) and then uses the NNCompute()
function to invoke Lambdas. Basically you should take our similar logic from src/graph-server/lambda_comm.cpp
such as LambdaComm::invokeLambda()
, LambdaComm::asyncRelaunchLoop()
, and LambdaComm::callback()
. The rest of the implementation should be reusable. The LambdaWorker
class for example is not tied to AWS Lambdas, it just listens for requests and sends/receives tensors.
You will also need to add some logic to instantiate the new ResourceComm
class here.
As long as you have some way of invoking your serverless functions and have it compiled and uploaded to your serverless platform then that should work. I would estimate this taking about 2 to 3 weeks.
Thank you very much! Your answer is really helpful.
Dear maintainers,
I'm using another faas platform rather than AWS Lambda and I would like to run dorylus on other serverless platforms like openwhisk. However, I find that the implementation of dorylus is tightly coupled with AWS Lambda.
Could you please give me some advice on how to run dorylus on other platforms? E.g., what files should I modify? How much time or effort I need to take approximately?
Thank you!