Summer Documentation 2016

I spent the summer working on a variety of things. I documented some important things about the PC I built during the year, and wrote down the new projects I worked on over the summer.

Notes on Hydra (aka the big, black box under the desk):

This section will be a general overview of the multi-gpu build known as “Hydra”. A brief History of the Hydra build, it began as a project to make one computer run as two computers capable of 3D rendering using Virtual Machines (VMs). This means that the computer would be hooked up to two separate sets of peripherals (keyboard, mouse, monitor, etc.) and run as two distinct computers, which brought about the name “Hydra” after the multiple-headed, mythical creature. This was accomplished by splitting the resources (GPUs, CPU cores, RAM, and storage) of the computer using the operating system “Unraid”. This OS allowed for windows to be installed on two different VMs and then allocate the PC’s resources to each one. Eventually both VMs were running well independently and very quickly. So why is then is the computer no longer split into two systems? Well at the time of the build there was no support for the Oculus Rift that had just come out. Having received the Rift at the same time as the build was being completed, we wanted to test it out. An issue arose when we plugged in the multiple connectors of the Rift, the headset and other devices that were plugged in were not easily assigned to a VM. In fact after days and weeks of fiddling with settings and XML, the VMs sometimes would not turn on. The executive decision was made to wipe the drives and boot Windows 10 on as a single operating system.

This leads into the current Hydra build, which is a machine that is very fast and very capable of displaying 4K and powering VR Headsets. The Rift works well with the PC, even while it is simultaneously displaying what the Rift-user sees on an ultra-wide screen. The GPUs are set up in SLI configuration, which means that both are used together for graphics processing. This, in addition to all the CPU cores and RAM being utilized by one system, makes the PC so fast that a video that took four hours to render on the Energy Lab’s previous video editing machine, only took four minutes on Hydra.

This was one of the many experiments done on the PC over the summer. In addition to testing how fast the computer was, I made sure that the proper software was downloaded for the future users. Also I have some quick notes for those using the PC in the future.

· If the PC will not power on when the button is first pressed, check to make sure that the power button cables are connected at the bottom of the motherboard

· If the PC is not passing the POST, meaning it appears to turn on, then turns off, then turns on again and stays in this loop,

1. Turn the PC off both with the power button and the switch on the power supply on the back on the computer.

2. Re-seat the RAM by flicking open the switches at both ends of each stick of RAM, removing them, and then putting them back in place. (they should click when inserted properly)

3. Turn on and see if it is working. If so, GREAT!

4. If not, you may have to reseat the GPUS

5. Make sure system is completely off (Step 1)

6. Unplug the red cable by pressing latch on cable and gently removing the connector

7. Unscrew the thumb-screws holding them in on the left side.

8. Un-do the latches underneath the right middle of each GPU

9. Pull straight out

10. You may test the PC without to see if it is something else (wont turn on still).

11. If it does turn on without GPUs, turn it back off, carefully reverse the steps, by reinserting GPUs until they click and plugging the red cables in. Before reinserting the thumbscrews try turning the PC back on. If it boots up properly, re-screw in the thumbscrews and you're good to go.

· Make sure that the software stays updated!

· Every 3-4 months clean the insides of the computer with the air blower

· DON’T DOWNLOAD STUFF FROM SUSPICIOUS SITES (if you are unsure about a site ask first)

· Yes, the RAM is seated to one side. I know it could be in Quad channel, but there are restrictions in the length of the Water Cooler cables, so I had to seat the RAM on one side

· To make sure SLI is properly enabled follow these steps:

o Right click and Select “NVIDIA Control Panel”

Click the option that is highlighted below:

Overall Hydra is a capable machine ready for 3D rendering, video rendering, unity projects, and much more, so to the future users of this computer: Create amazing projects, Utilize the processing power at your fingertips, and don’t forget to have fun!


This summer I built what, for now, I am calling the “Pi-Box”. This box consists of a Raspberry Pi, a project box, a 7-inch touchscreen display, and a stand. I began by getting the raspberry pi entirely set u with operating system and software. Then I checked to make sure that the display was working by connecting it to the pi via ribbon cable. Next I made measurements of the pi and the mounting holes of the display. This led up to the point where I was able to cut a space for the pi in the project box. I went to mount it and it fit, so I drilled the holes, and slipped the display-pi combo into place. I screwed it in and sure enough the initial build was ready. This configuration is capable of being portable, as I discovered by connecting a portable charger to the micro-usb port. I decided to turn it into a stationary unit by attaching the stand to the back of it. If the facial recognition software Oliver worked on over the summer is installed on the unit, it might make a good, small footprint, automated attendance taker that I’d suggest testing in Independent Research classes.

Oracle R-Pi weather station:

I spent a few days working on the Oracle Raspberry-Pi weather station. Basically it is a kit of sensors for wind speed, direction and rainfall. A Raspberry Pi is included as well. I found that it doesn’t come with a lot of documentation. I got the wiring all set up, but the Pi itself still must be booted up and Id suggest that anyone working on it in the future look to find a way to mount it on a board that can be connected to the post outside that has other weather monitors.

Unity and other 3D Stuff:

Unity is software that is used to create interactive media in both 2 and 3 dimensions. I began with a tutorial for a 3D game. I began by creating the environment, which included a ball and a plane. Then I wrote scripts in C# to control the ball and camera.

I began looking into this software and how to use it, because it can be used to create content for VR. It is loaded onto Hydra, so if someone wants to, they can begin making content.

I also found a program called 3D Slash that can be used to create objects that can be 3D printed. I was working in this program to create a module that would contain the pi-cam for the Pi-Box. I did all the measurements and then used the tools to make sure the housing has the correct measurements.

3D slash is free, and has an editor online, but upon signing up you can download the app onto your computers (two per account). It is a quick way to create a 3D object and save the file as a .stl or .ply that can be printed.


I spent quite a bit of time also working on facial and voice recognition on the raspberry pi. I spent more time working on vocal recognition, but in both cases I made the observation that it takes a bit of time to process inputs, mostly because of the amount of RAM in the Pi. Thus for faster recognition times, preloading faces onto the RAM makes recognition faster. In addition, if you delete each profile that is matched as they are recognized, the faster each successive recognition cycle will be. I did not spend as much time on voice recognition, so I did not look into how to make it faster.


4.8.1 and Extra Tuesday Entry

Monday: Oliver and I set up new raspberry pi 3's. We booted them up, installed Raspbian, and set up some other softwares. We have node red running and mysql-server running. These will both be helpful in data collection and analysis, and It will help in automating tasks.

Tuesday: Today I went in to benchmark Hydra again with 3DMark, and I caused an error with the UPS. Hydra uses a lot of power so it tipped off the UPS load because of how much energy it was drawing. Today, as I was about to benchmark, I heard the UPS start beeping and then it had a continuos beep and was displaying an error. I moved the PC under the table, reconnected everything, and proceeded to benchmark. Here are the results:

This time we got a valid result. Hydra scored 22,276, which is a score above what systems designed for 4k and VR average.
This is a very good result. Now it is time to install more software and get the system ready for use.


4.7 Summary

This week I worked on benchmarking and doing a little optimization of PC now name "Hydra". I ran into issues with 3DMark because it said that the score achieved was invalid. I will run it again sometime next week and see what the result is. In addition It has continued to be an interesting experience finding VR content, and it will be interesting to see if I can find people around the E Lab that want to create content for the Rift.



Today I ran the 3DMark benchmark. The PC achieved what seemed to be a very high score, but 3DMark said it was invalid. I will run it again next week and see what the outcome is that time. If it says "Invalid Score" again I will look into possible causes.



Today I ran benchmarks on the PC. Using Cinebench I tested our frames per second performance and the highest recorded fps the machine has hit is 155.15 fps. This is a very high score and is a very good sign. I am looking to benchmark using 3D Mark next and see how the PC scores. Also I asked Oliver to setup SLI and he did which allowed for higher fps. SLI allows us to utilize both GPUs that we have in the PC.



Today I studied for the AP Physics C Exam.


4.6 Summary

This week we scrapped UnRaid and went with a windows only approach. The PC is running really fast, and I am looking to do Benchmarks on it next week. As of now it is very capable of running the Oculus Rift. We have been spending the last few days exploring the VR content available for the Rift. So far the content and the technology has been available. I look forward to the content people here in the e lab will be able to create for it.



Today we spent the period experiencing the Oculus Rift. We have downloaded a few games and it has been a whole new type of virtual interaction. There are third person games, first person games, and some experience VR content, and we spent the period exploring it. I am excited by the potential of this new piece of equipment. I am going to ask around and see if anyone wants to create content for it.



Today we got the PC running and Got the Oculus Rift set up. We began by powering on the PC. I discovered yesterday that the pins that connect the power button to motherboard were not entirely connected. They must have come a little loose when I was doing some cable management. I plugged those in and pressed the button and it powered on. Today, we turned it on and, with the Windows Installer USB in, we installed the OS. We wiped the drives and re-formatted them. I'm not sure how to recover the storage space that was taken up by the UnRaid stuff. This will be something to look into. Once the OS was installed we had to download the driver installer to get access to all of the Motherboard and non-motherboard components. Next, we downloaded Google Chrome, the Nvidia GPU software and drivers, and the Oculus software. Setting up the Rift was pretty quick, as the setup guide was very nice and straight forward. By the end of the period, we were playing games and experiencing the Oculus Rift. It is an amazing piece of technology. It has potential as both a media consumption device and a very powerful tool in creating and exploring VR content for many purposes.



Today we decided that we were not going to use UnRaid anymore. This means we removed the the USB Boot drive, we removed the third GPU, and spaced out the remaining GPU's. Then I connected an SLI bridge to allow for higher graphics processing capabilities. I might have to configure something for this to work. I would have booted Windows onto this computer today, but I spent part of the period giving a presentation. Wednesday I will install the OS and get the PC running. Also, sometimes the PC won't power-on, so I will look into this as well.


4.5 Summary

This week I worked on learning how to transfer files using SCP in Linux and I will have to look at it again in the coming week. Also I contacted Lime-Tech and they said the only way they could fix the problem was with a paid session with them. This means we will have to evaluate our options and decide how to proceed on Monday.



I was not in class today.



Today I decided it was time to contact Lime-Technology about fixing the UnRaid issue. I sent them an Email asking about how to fix the VM and get the Oculus rift ready. They told us that we would have to schedule a meeting for them to fix the problem. Also they do not have the Oculus Rift because It hasn't shipped out to many people. We will have to discuss where to go from here because it sounds like the meeting would cost money. We will have to consider our options.



Today I worked on reading through SCP documentation. This is because I am trying to do set in place a good system to move files from my raspberry pi to the new linux server. This will allow for some of the programs I have written that require a mysql database to run quicker and more efficiently. Also I am interested to see if Scipy and Numpy are built into the Linux machine because it would make it a faster process when I decide to install SciKit on it. These programs are data analyzing programs that can aid machine learning.


4.4 Summary

This week I continued to try to fix the VM situation. I decided that taking a break might be helpful, so I spent the other two days of the week working on other computers. I setup a computer that is running Debian and installed mysql on it. I also began working on another computer that I may benchmark as is and then see how I can make it faster.


Picture guides for all of this to come soon.



Today I started putting together another system. I am not sure what will be run off of it, but I might install Remix OS an android desktop OS onto it and see how fast it is.

Today I also looked into how to ftp files from terminal in Linux. This will be something to look into again, so that it will be easy to move some files from the Raspi to the new Debian computer.



Today I set up a new computer that is now running Debian 8.3. First I began by taking out the mSATA SSD and replacing it with another one. Then I installed Debian onto the system as a clean install. The computer handles Debian well and it's boot time is very quick. Once I got the system all up and running, I installed mysql and mysql-workbench. I am not yet sure what data is going to be stored on this machine. I would, however, like to build the migraine program I have been working on, on it, because I can't find the original database on the Raspi I was using and because this new computer would be faster.



Today I continued to work to try to get the VM up and running. I first tried checking the settings in the BIOS and they were all okay. Next I tried deleting and recreating the VM again and it still wouldn't load. I ended up deleting the disks because I was wondering if changing something in the XML was preventing us from getting them to run. After this I re-created the disks and the VM and still noting. I turned off the second VM, which is still working, and changed the first VM's GPU to the second graphics card and sure enough it worked. This means I will have to re-download everything onto the first VM and run benchmarks on it again. The issue might be initially booting to BIOS and using the first graphics card as an output. I will try booting without checking the BIOS and see what happens. Also I have to figure out what setting in the BIOS deals with turning power back on after shutting down.


4.3 Summary

This week I:
  • Tried to move OS on Raspi to USB
  • Tried to Make the Oculus work with the HydraX2

What happened:
  • Raspi: Lost mysql, sd card still filled
  • HydraX2: VM won't start up (Domain id=__ is tainted)

This is a pretty general but accurate summary of what happened with these projects this week. Next week I will work to get everything up and running.



Today I Tried to re-enable a VM that I broke last time, but It didn't start working again. I spent all class trying to get it running, but alas nothing seemed to get it working. It is important to note that VM 2 (User 2) is still up and running. Also I forgot to mention earlier in the week that **** A VM CAN BE DELETED AND RE-ASSIGNED TO ITS DRIVES WITHOUT DELETING CONTENTS, AS LONG AS DRIVES ARE NOT ALSO DELETED ****. Anyway, there are a few things to straighten up next week, which I will further detail in the weekly summary for this week.