Open tobyhodges opened 2 years ago
List of objectives in the current version of the lesson:
Based on discussion in the first sprint session at CarpentryCon, it sounds like some discussion of the --profile
option is something that will need to be added to the lesson for an HPC setting.
Related to discussion in #4, familiarity with Python is not currently a prerequisite for the lesson, so episode 5 should probably be removed altogether (after checking that there is not other useful content in there, not specific to Python)
Based on discussion in the first sprint session at CarpentryCon, it sounds like some discussion of the
--profile
option is something that will need to be added to the lesson for an HPC setting.
I will try working on that on the upcoming sprints by submitting a PR to episode 9.
Some of the flexibility comes from Python. Programming experience from the shell lesson should be enough to understand the Python code if it is introduced correctly.
The lesson is quite long, 6 hours, it would be good if it was about 4 hours. Removing some of the repeated parts may work.
Draft outline of objectives for the revised lesson, for when we get there. Some of this material is cut-and-pasted from the Sprint notes.
wildcards
object, preparing us to introduce the resources
object later, by analogy with the wildcards
object.
resources
object and our defined function get_tasks()
. Function executed at runtime for the rule it is written into. get_tasks()
Do we care about the --quiet
option? Python is probably a pre-req at this point.In light of the decision made at the April co-working meeting, viz. that we should not ever run the Amdahl code on the head node or on learner's laptops, some revisions are appropriate for the lesson content.
Episode one's goal needs some revision --- the current thinking is that learners can run the Amdahl code on the head node and collect some preliminary performance data, by way of re-familiarizing themselves with the code, and illustrating the difference between the "bare metal" run and the Snakemake-enclosed one. We can still make this point, but will need to do the initial runs on the cluster, using batch files. Graduates of HPC Intro will have seen this, but realistically we should add some time for refreshing this knowledge for actual human learners with imperfect retention.
So a high-level version of the set of tasks now maybe looks something like this:
From here, the tasks get a bit more murky in my mind, but the two beats to hit include:
The mapping of these goals to the existing lesson material is the next step, hopefully much of it is reusable, but a clear and coherent lesson structure is more important than re-using prior content, IMO.
To guide the development of this lesson, it would be a good idea to have a clear outline of which parts of the current lesson are important to be kept for the HPC Carpentry setting, which are non-essential but not harmful, and which need to be removed.
One way to do this would be to review the current list of objectives for the lesson and discuss them in the context above. Perhaps dividing them into "must be kept", "could be kept", and "should be removed"? And then you will also need a list of new objectives that you want/need to add, which are not in the lesson in its current form.