Wednesday 2 December 2020

EMBS Design Contest 2020

 

One year has passed since I wrote the last entry to this blog, and everything is so different now. We had to adapt to a very complex situation, and all our teaching had to be done online this academic year. It was particularly challenging for embedded systems, which in York has always been taught as lab-centric topic. With no access to the labs, we had to work hard to achieve the same learning outcomes using design tools and simulators that could be run by students in their own computers. We had a couple issues, particularly with creating and deploying virtual machines with pre-installed tools, but given the circumstances everything went well.

Another challenge was this year’s EMBS Design Contest. The traditional format where students run against the clock to create an ad-hoc wireless network across the Computer Science building was clearly not possible this year. After thinking about it for several weeks, I was ready to cancel the contest when I had an idea that would be suitable for our circumstances. Since I had added some new material to the part of EMBS that covers platform-based design and task mapping algorithms/heuristics (as I was forced to reduce the content on embedded wireless networking due to no access to the labs), I thought I could explore that type of problem and formulate a challenge that people could address in a distributed way.

The problem I devised was to map a large application model (44 tasks, 68 inter-task communication flows) to a multi-core platform based on a 2D-mesh network-on-chip. The application tasks and communications were characterised, respectively, by their processor utilisation and network link utilisation at nominal frequencies for the cores and interconnect. The objective was to find a mapping, over the smallest 2D-mesh platform and running at the smallest fraction of the nominal frequencies, but without over-utilising any processing core or network-on-chip link. This is an NP-hard problem that I’ve addressed in my research (together with several of my post-doc researchers, Master and PhD students), but using response time analysis instead of utilisation-based tests. In either case, there are no known optimal algorithms for this problem, only heuristics that do not guarantee optimality.




Before releasing the problem, I had to make sure it was challenging enough, and that it had at least one valid solution. To do that, I have created a valid mapping for a fairly thin application model onto a 4x3 network-on-chip platform. I then inflated the utilisations of tasks and communications of that thin model until that mapping was nearly breaking the utilisation bound of the platform at arbitrary but realistic frequency levels. The inflated application model was then be the problem I posed to the students (divided in four groups), and I had a good solution that I knew was valid (my chosen mapping for a 4x3 platform) and certainly achievable by the students with a bit of effort.

Once the challenge was released, I monitored the progress of all four groups (and had one videoconference session with each group) over the 2.5 days of the contest. Students were not allowed to choose their groups, and each group had 8-10 members. I’ve noticed that only 2-5 members of each group were actively working towards a solution to the design challenge. In past years, when the design contest happened in the lab, it was common to see 2-3 students taking the lead, but then all other students would engage or at least learn from the solutions attempted by the group. In the case of remote/online groups in 2020, that “side-learning” situation (i.e. students learning from students) did not really work. This could be an undesired consequence of online groupwork, but could also be related to the covid circumstances, or to the heavy workload at the end of the teaching term (especially when running the contest over 2.5 days instead of an intensive lab-based 2h competition).

Nonetheless, the achievements of the groups were laudable. Three of the four groups provided valid solutions to the problem. Group 4 actually found my original solution on a 4x3 platform, using a clever constructive heuristic that clustered together tasks that had high-utilisation communication flows between then, followed by some manual adjustments to tidy up the mapping. But the winner of the EMBS 2020 design contest was Group 3, who came up with a valid mapping for a 5x2 platform, therefore using fewer processors than the solution found by Group 4 (and myself). Their approach was based on the use of Genetic Algorithms for task mapping, which was covered in the new lectures and practical exercises I added to EMBS this year. Remarkable work, based on an unusual network-on-chip topology, but fulfilling completely the rubric of the design contest.

As always, we close the blog post with a picture of the winning group, Group 3. Fittingly for 2020, the picture is a snapshot of a videoconference. The group members will receive their prize (a snack giftbox each) via post this year.




 

And for finding my original solution to the challenge, I decided to award an honourable mention to Group 4 and add their photo as well.


 

Finally, links to the complete EMBS Design Contest Hall of Fame, with pictures of the top teams from 20192018201720162015201420122011 and 2010 (in 2013, no group managed to finish the challenge on time).