Welcome! If you are looking for the materials from the education tutorial at the FABRIC KNIT Community Workshop, you’re in the right place.
Getting extra help: If you are an instructor that needs help planning your use of FABRIC, please post in the FABRIC educators forum. You may also contact the author of this tutorial: Fraida Fund.
To minimize pain for your course staff (yourself, and any TAs you might have working with you) and for your students, it is important to recognize that there are many ways to teach with FABRIC, and you should carefully select the way that is right for your course.
For example, there any several “interfaces” that students could have with testbed resources. On a scale from “requires the least expertise” to “requires the most expertise”, these are:
There are also different ways in which you can support students in their FABRIC experience. On a scale from “most support” to “least support”, some of these are:
The circumstances of your course will dictate how you use FABRIC.
For example, suppose that
Then, you might have students use the SSH interface, where they execute Linux commands on resources directly, so that they get experience with this way of interacting with remote resources. You might choose to provide a video walkthrough so that students can see what each step should look like. In a large class, a video walkthrough can help resolve many questions students might have before they even have them! You could also offer synchronous office hours and asynchronous Q&A for the questions that are not addressed by the video walkthrough. An asynchronous Q&A platform where every student can see all of the questions and answers - even the ones they didn’t post themselves - can help minimize pain for course staff in a large class.
On the other hand, if
you would probably prefer the “students just run cells and observe output” interface. However, you anticipate that some of your students will struggle with this, so you might choose to use in-person class time for “FABRIC assignments” so that you can help with issues as they come up.
Finally, if
then you might expect students to write their own Jupyter notebooks, and to visit office hours if they need help.
At least a few weeks before you plan to use FABRIC in your class, you should begin to plan your use of FABRIC by answering some questions.
You need to decide what technical skills you want your students to use as part of their FABRIC experience.
Then, think about the topics that you want to include in your students’ FABRIC experience. There are existing ready-to-use materials for various topics in computer networks, network security, cloud computing, and related fields. You may be able to find existing materials that you can use as-is or adapt for your class.
This is also the right time to think about the resources on FABRIC that will be available to your course. Most education users of FABRIC are expected to exclusively use small-scale virtual resources on the dedicated EDUKY site. If the existing materials you want to use require other resources -
you will also need to consider whether resource availability is likely to be a problem. If you have a large course enrollment, you will not be able to support simultaneous use of “scarce” non-virtual resources like GPU, FPGA, and SmartNIC interfaces for all students. (If you try to do this anyway in a large class, it will be a frustrating experience for your students, since they are likely to struggle to get the resources they need to complete their work.) However, if you have a small number of students and use of these “scarce” resources is necessary for your course topic, you may request to have extra permissions added to your course project.
Before your students use FABRIC for the first time in your course, you have some logistics to take care of:
Make sure to edit the project settings to keep the list of “Project Members” private!
You should also prepare yourself and your course staff for the issues that students are likely to encounter, so that you recognize them and are prepared to assist when they come up. Common issues include:
fablib.show_config()
command near the top of most FABRIC Jupyter notebooks. Even if a student has previously completed “Hello, FABRIC,” they sometimes try to “fix” problems later by changing their FABRIC configuration or removing their keys, in which case they may need to repeat “Hello, FABRIC.”ssh
command with the -v
flag added, for more verbose output, in order to help them identify the problem.While students are interacting with FABRIC, be prepared to execute your support plan, with some combination of video walkthrough by course staff, synchronous support in class or in office hours, and asynchronous Q&A. (Pro tip: you can anticipate students problems and post them yourself as anonymous “questions” on your Q&A forum! This helps students who might have been reluctant to ask for help.)
If necessary, the instructor/TA can escalate issues that the course staff are not able to resolve on their own:
Note that the most common infrastructure issues are transient errors - if students are not able to get slice to StableOK
on the first try, encourage them to delete slice and try again one more time before asking for help.
At the end of your course, consider asking students for feedback on their experience with FABRIC. Then, close the loop: share useful comments with the FABRIC team and/or with authors of any course materials you have been using.
This example shows how the same activity can use different “interfaces” to FABRIC, with very different effect.
In both versions of this example, students will use a Jupyter notebook to reserve resources on FABRIC and configure them. Also, the students in both cases use the Jupyter notebook to visualize the results.
However,
This example about deploying machine learning systems to the cloud is a more advanced cloud computing sequence that students may run on FABRIC, leading to an open-ended design challenge. It also serves as an example of an education use case that requires “more” than the standard resources:
VM.NoLimit
permission on the FABRIC project. To allow students to explore a wide variety of deployment strategies taking resource usage into account, every student will use 3x VMs, each having 4 VCPUs, 8 GB memory, 40 GB disk space.Net.FABNetv4Ext
and Net.FABNetv6Ext
are not permitted for education projects, for security reasons.Some notes about running this experiment:
For many students, the first interaction with FABRIC will be
After “Hello, FABRIC”, other “skills”-focused exercises can include:
For an introductory networking course, a typical sequence of topic-aligned activities might include:
or may use other materials available here. If you are an educator at an institution with a license for Gradescope, lab assignment templates and rubrics are available via Gradescope for some of these - contact Fraida Fund for access.
For “Designing subnets”, a random design problem generator is available to give each student a unique assignment - contact Fraida Fund for access.
The FABRIC team also maintains a repository of additional teaching materials, which you may find useful.
This material is based upon work supported by the National Science Foundation under Grant No. 2231984. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.