-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use Faabric distributed coordination and merge operations #534
Conversation
// One page is 64kB | ||
#define DYNAMIC_MODULE_STACK_SIZE (2 * ONE_MB_BYTES) | ||
#define DYNAMIC_MODULE_MEMORY_SIZE (66 * WASM_BYTES_PER_PAGE) | ||
#define GUARD_REGION_SIZE (10 * WASM_BYTES_PER_PAGE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just moved this stuff out of the wasm module header as it's shared configuration and useful elsewhere.
@@ -337,106 +338,4 @@ TEST_CASE_METHOD(WasmSnapTestFixture, | |||
|
|||
::munmap(snapMemory, snapSize); | |||
} | |||
|
|||
TEST_CASE_METHOD(WasmSnapTestFixture, | |||
"Test ignoring stacks", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This no longer happens.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Just two minor things.
@@ -73,7 +73,7 @@ More detail on some key features and implementations can be found below: | |||
- [Kubernetes and Knative integration](docs/kubernetes.md)- deploying Faasm as part of a full serverless platform. | |||
- [Bare metal/ VM deployment](docs/bare_metal.md) - deploying Faasm on bare metal or VMs as a stand-alone system. | |||
- [API](docs/api.md) - invoking and managing functions and state through Faasm's HTTP API. | |||
- [MPI](docs/mpi.md) and [OpenMP](docs/openmp.md) - executing existing MPI and OpenMP applications in Faasm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there value in linking the OpenMp docs from the cpp repo here? Maybe worth for the future to have accessible documentation about MPI and OpenMP in Faasm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the OpenMP docs said anything about the Faasm implementation of OpenMP then there would be, however, those docs are purely about debugging issues with compilation, which is only relevant to the cpp
repo.
The MPI docs are also not really relevant to this repo and focus on compiling and uploading functions, so could also be moved to cpp
.
@@ -5,6 +5,7 @@ | |||
#include <faabric/scheduler/Scheduler.h> | |||
|
|||
namespace tests { | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I usually don't add this lines myself, does clang-format
say something about it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see what harm this newline does, in fact, I think it makes it easier to read as it clearly separates the namespace declaration from whatever comes next. The Google style guide seems to agree as all their examples have a newline: https://google.github.io/styleguide/cppguide.html#Namespaces. What's the argument for not adding it?
Doing a brief scan I can see that the repo is pretty mixed at the moment and can't find a rule in clang-tidy to enforce anything so we can leave it for now.
Update Faasm multi-threaded code to use latest Faabric features, including distributed coordination (faasm/faabric#161), snapshot merge operations (faasm/faabric#142), and scheduler hints (faasm/faabric#169).
Changes:
PointToPointGroup
s for OpenMP locking and barriers.SchedulingDecision
for each level of an OpenMP application, then pass this as a hint when scheduling the same number of threads at the same depth.Level
class (now handled byPointToPointGroup
).MutexManager
with FaabricPointToPointGroup
in pthread code.This is an update of #480 which had gone stale.
I also tidied up a couple of things:
faabric
container from Faasmdocker-compose.yml
. We should use thefaabric
CLI container in the Faabric project itself.