Discussion: Course HPCSE I in autumn term 2017

The course and, in particular, the performance of the lecturer P. Chatzidoukas, drew heavy criticism from the side of the students in BSc and MSc RW/CSE.

Es ist hart, ein halbes Jahr später genaue Punkte aufzuzählen, hier was mir gerade einfällt:
  • sehr unkommunikativ, z.B. haben wir erst kurz vor Semesterende offiziell erfahren, dass (und v.a. in welchem Umfang) wir bis zur Prüfungssesion ein Projekt machen müssen. Oder es wurde nie gesagt wie stark das Projekt die Endnote beeinflusst.
  • geht nicht auf Fragen ein, bzw. antwortet etwas komplett anderes
  • schläft fast ein, sehr schlechte Vortragstechnik
  • verbringt viel Zeit mit einfachem. Merkt dann, dass er zu wenig Zeit für das schwierige hat und überspringt dies mit dem Vermerk dass das ja einfach sei.
  • sehr langweilig zum zuhören. Dementsprechen passen viele nicht auf.
  • es wäre sinnvoller, mehr high-performance computing anzuschauen (z.B. mehr details der GPU programmierung), anstatt Uncertainty Quantification durchzunehmen (dies hat allerdings nichts mit P. Chatzidoukas zu tun)
Entschuldigen Sie die harten Worte, aber aus meiner Sicht schlichtweg nicht geeignet als Dozent (Dass die meisten Studenten (Maschinenbauer, Informatiker, ...) nach HPCSE I ausstiegen statt mit HPCSE II fortzufahren bestätigt dies). Die Thematik von HPCSE an sich ist interessant, auch die Übungen sind gut gemacht.

=========================

In my opinion as someone currently (5th semester BSc CSE) attending HPCSE I, there's an unusually high number of negative aspects:
  • Schedule: While a tentative course/subject schedule was presented during the introductory lecture, it has been abandoned at the first opportunity without any further comments or corrections.
  • Timetable: The exercise sessions are swapped with or replaced by blackboard lectures on a complete ad-hoc basis mostly without any previous communication. Quite often you'd find yourself sitting in the lecture hall at 0815 not having a clue who's going to talk about what and when during the next four hours.
  • Exercises: While interesting as such, the exercises seem an afterthought and only loosely connected to the lecture content. When comparing to last year's, they clearly fall short in term of scope, structure and content. Feedback is terse, often late (2 weeks after deadline) and only generic to the whole course with no individual feedback offered.
  • Course material for upcoming lectures (which is relevant due to the disconnected structure of the course, see below) is either not made available before the lecture at all or sent out late during the night before the lecture (see https://www.changedetection.com/log/ch/ethz/cse-lab/615-hpcse1_log.html#changelist for a diary of this).
  • Intransparent assessment mode: During the inaugural lecture, it was stated that previous years' experience had established that "CSE students would shirk their responsibilities and not put in any work during HPCSE I due to the unfair lack of exam pressure and then would perform poorly during the oral exam during the following summer exam period while apportioning the blame for their performance to the course". Therefore, we'd be "strongly encouraged" to sit the HPCSE I exam with the other participants. While we obviously wouldn't get the CP for that, we could look forward to a "heavy bonus" for the summer HPCSE II exam, the details of which we were promised to receive "shortly". Luckily, no-one seems to have held their breath for that as we're still waiting. Also, "a dim view" would be taken of those planning to sabotage this proposed course of action by insisting on current study regulations.
  • Teaching style: Though this is very much a matter of personal taste, I concur with the above previous remarks in German and would place it at the low end of ETHZ's quality scale.
  • Course structure: While the subject matter more or less by definition admittedly is a mixed bag, there's no need to present it in such an disjointed, thrown-together and thus uninspiring way. As the initial timetable was binned so early in the course and additional subjects were added while others seem to have been dropped, I personally have no clue where we're going with this. I just wish the ride wouldn't be mandatory.
=========================

I concur with the statements above about the teaching style and general state of disorganization in the whole course. I have attended the lectures of HPCSE 1 & 2 already last year, however then opted out of taking the exam last summer.
  • Exercise / lecture times change on a random basis, we never know what to expect at 8am on Friday. Upon confronting the lecturer about it, I was met with surprise "But you are CSE, the morning should be free..". Evidently we potentially have classes that might conflict with HPCSE that we chose because those classes fall into the officially scheduled exercise time of HPCSE such that we could attend said other class as well as HPCSE.
  • Structure: This is actually my largest issue with the course. Since there is no exact syllabus provided, it is not clear where we are going and to be honest I'm starting to feel that this is something that is not just in the unknown for us students, but also for the lecturers.

It irks me that this bloated course is mandatory and wish there were a way of replacing it with something more compact and structured that focuses on the core topics.

My grievances about the topics treated during last year's course:

  • Too much time devoted to uncertainty quantification and stats in general in HPCSE2. Imho a larger focus should be put on GPU(Cuda) programming and perhaps also other (open) frameworks such as OpenCL.
  • During last year's course (2016) I found the amount of emphasis that was put on the different OpenMP statements and options to be disproportionate to the actual theory behind it. A multitude of OpenMP problems posed during class(and as I heard also in the exam) resulted in the assessment "this does not work because...";- A statement that exemplifies the shortcomings of OpenMP and suggests that we as students of CSE, whose (core) business it shall be to speed things up should perhaps focus on a lower level of programming and treat OpenMP more as a "nice to have", rather than the go-to framework to be applied blindly for parallelizing any problem that may come along.

=========================

2017-10-11 WM

  • Core course resembles a introductory course
  • Chaotic, random content at random times
  • Even though the VVZ says that exercises are from 8-10, lecture 10-12; this is often not the case; best case, an email with the schedule is sent less than 24h beforehand; worst case, the email is irrelevant, since the schedule written in it is not adhered to anyway.
  • Does not go into any detail at all, eg. floating point arithmetic, PCA covered in more detail, and better explained, in NumCSE. It remains to be seen if diffusion, PDEs and Monte Carlo will handle content not handled in NumPDE and StatPhys.
  • There are no clear definitions, most terms are explained by example only (eg. back propagation in NN).
  • I have heard the phrase "You will see this later" more times than I can count. Not only in the first weeks, but still in week 5 and 6 of term!
  • Likewise, not going into details, aka. "we don't care how its done, someone did it for us" ("How are broadcast and reduce implemented? We don't care, someone else did that for us!" (MPI)). I fail to understand how the inner workings of OpenMP, MPI and other HPC techniques are not relevant for a CSE student.
  • It's really lovely to hear about the history and provenance of techniques and algorithms, and the greek ethymology of words, but really, I would appreciate to learn something new about high-performace computing.
  • Teaching of OpenMP and MPI reduces to showing 100 slides that are exerpts from the respective cheatcards or "self-explanatory examples".
  • Teaching of programming reduces to showing snippets, without deliberations on why or how.
  • Lecturers have a tendency to make simple explanations, while mentioning more complex concepts in side-sentences. This more often than not results in questions that lead to brief explanations of the concepts, and more confusion in the classroom (eg. Roofline model: it took 3-4 weeks to fully clarify the influence of vectorization, FMA, size of float).
  • In addition to that, content is split into parts that are handled weeks apart (OpenMP part 1 + 2; MPI part 1 + 2)
  • The best teacher until now is Fabian Wermelinger, one of the assistants.
  • The lecture contents are not what it says in the VVZ; the current balance feels like 50% HPC (OpenMP, MPI, BLAS, ...) and 50% Machine Learning (Neural Networks, ...). I was under the impression, that one could choose ML as a specialization...
  • In my honest opinion, grading of exerceises is one of the tasks that assistant should do in any case, that should not be outsourced to the students; even more so if that grade gives a bonus.

In addition, I have a general grievance with respect to the whole curriculum, that is very prominent in HPCSE I: what is the point of having ProgTech1 (Modern C++, etc.) if the programming style of the majority of the other lectures resembles that of the 90s? (short variable names, lack of zero-cost abstraction, manual memory management (no, it was not for performance reasons))

2018-02-19

  • The exam skeleton codes were non-existant. A lot of time had to be spent on input, output and other boilerplate.
  • We were requested to appear 15min before the exam, yet it started 40min late - I would have wished the same courtesy of punctuality would have been extended to the students (ie. that the organizers considered buffer time for setup)

=========================

Page URL: https://wiki.math.ethz.ch/bin/view/RW/HPCSE
2024-04-27
© 2024 Eidgenössische Technische Hochschule Zürich