In your GitLab account, you should have access to a new repository t02-student<your-id> where is code of another team. Your task is to write short review about the API of that team. Note that this task is done individually (hence you will receive two reviews for your design).

Review format

Your review should consist of two parts. First one is another example application using the provided API, the second one are several paragraphs (not bullet list) commenting on the API.

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 summary

The review summary shall contain

  • 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](/files/teaching/nprg043/labs/03_review.html#(18))\]

Submission

Submit your work (numactl snippet and the comments) into a single plain text file that you will place into the root directory of your repository and name it REVIEW (notice the missing extension and capital letters).