You will receive access to a new repository with the initial API design from another team. Your task is to review it. This task is done individually, which means that you will receive two reviews for your own design.
Review format
The task is split in two parts. In the first part, you are expected to create an (additional) example application using the provided API. In the second part, you are expected to summarize your API review in several paragraphs of text (not a bullet list).
Example application
Implement skeleton for application numactl (man page). The purpose of the task is to learn the new API, not implementing NUMA features. Therefore, the expected skeleton of your application is the following:
args = ... // configure the arguments
args.parse(argv)
if args.has("--show"):
printf("policy: default"); print("...")
elif args.has("--hardware"):
printf("available: 2 nodes (0-1)"); print("...")
elif:
printf("will run %s", args.get_command())
printf("CPU node bind: %s", args.get("-C").join(","))
...
Your example must support following styles of invocation:
- Without any parameters, the program shall print help.
- With
--hardware
, it shall emulate printing current hardware configuration. - With
--show
, it shall emulate printing current NUMA policy. - With options
-m
,-p
,-i
and-C
it shall emulate running a program with modified NUMA policy.
See slides for further examples.
Review outline
Your review should adhere to the following (rough) outline:
- overall impression of the library (1-2 paragrahs)
- notes on writing numactl (1-2 paragraphs) [what was easy, what proved to be impossible etc.]
- other notes regarding completeness etc. of the library [use checklist from slides]
Submission
Submit your work (the numactl
snippet and the comments) in a
single markdown text file placed in the root directory of
your repository and name it REVIEW.md
.