This is the new home for Technical Musings, the technical blog I have maintained for a number of years. Virtually all the posts prior to 2022 were ported directly from the old github.io site. I also addd a bunch of news items (from my old personal website) that are now curated under the News category. While my old github.io blog will be perserved for posterity, all current/future updates will occur here.

The Dot Product Program

Now that we have covered a basic Epiphany program, we will go on to a more complex example that executes in Parallel. This program can be found in the epiphany-examples/apps/dotproduct/ directory on your Parallella board. Before we start discussing the code, let’s discuss the problem. Calculating Dot Product in Parallel The dot product between two arrays is the sum of the products. Consider the arrays $A= [1,2,3]$ and $B=[4,5,6]$. The dot product of these two arrays is $1 \times 4 + 2 \times 5 + 3 \times 6 = 4 + 10 + 18 = 32$.

Read More…

Hello Epiphany

In this post, I’m going to walk you through Epiphany’s hello world program, which can be found in the epiphany-examples/apps/hello-world directory. I strongly encourage you to see my previous post about the Epiphany architecture to assist you with your understanding of the material in this post. I will assume you understand Epiphany’s basic memory model and architecture. This post was adapted from my slides and lecture notes that I used to teach my students during the Epiphany unit we had this past semester.

Read More…

Overview of Epiphany Architecture

In this post, I’m going to give you an overview of the Epiphany co-processor architecture, including the motivations for a co-processors and hardware accelerators, what sets co-processors apart, and then the details of the Epiphany co-processor. While you may think that this post is not as important as the future posts that will walk you through how to run programs on the Epiphany chip, I urge you not to skip it.

Read More…

Running our first Epiphany Program

Before we get into the nitty gritty of programming the Epiphany architecture, we are going to do a quick demo and benchmarking study to illustrate how to use it. For the purposes of this demo (and cluster demo that will be posted later), we will be concentrating on the Epiphany implementation of John the Ripper, which was contributed by Katja Malvoni, and is accessible under the parallella-examples/john subdirectory on your Parallella board, or through the parallela-examples Git repository.

Read More…

Epiphany Module

This page serves to collect all the posts related to my teaching materials for the Epiphany programming module. This material was originally delivered to my students as part of my parallel computing course which debuted in Spring 2015. Please visit the links below to access my lecture materials on the subject: Running our first Epiphany Program Overview of Epiphany Architecture Hello Epiphany The Dot Product Program The Dot Product Program Revisited

Read More…