Thursday August 3rd
HP and the Machine
Hello…from Palo Alto!
- Okay, sort of a lie. I went to Mountain View first, and got a mango slush from Teaspoon!
- The Trip up was surprisingly drama-free. I tried a different service and it was quite nicer, with internet that worked. I think I’ll do that again next time.
Hung out a bit…
- I went up to a Starbucks in Palo Alto and randomly met a CS professor from Stanford who is now retired, who is originally from the UK (British), named Caleb. He was quite kind, and after we met and shook hands, and I told him why I was in the area, he smiled and said to take care of myself, and continued working, tapping away on his laptop, as I worked on mine.
Then I went to HP, for a talk on their memory driven-computer, “The Machine”.
Advantages of Memory Driven Computing
- Fast, persistent memory
- Their system uses a photonic engine that eliminates distance as a hindrance (as opposed to using copper, where energy is dependent on distance) and creates otherwise impossible topologies
- it’s task specific processing
Using Photonics
- This copper stack is replaced by this photonic cable (the thin one above it)
The photonic engine (with scaled-up version)
Photonic engine (with my fingers to scale)
Data Structures..how do we program such a system
-
We use pointers because we can directly access memory. There is no need for serializing and deserializing data. For example, in Java, no usage of “new”.
-
Susan also said that clearing the cache or turning off will not solve a problem as it would today, because of the persistence of memory. That’s an interesting problem / challenge.
Example using Managed (garbage collection) vs unmanaged (C++).
- Uses data structure called MPGC (GC is garbage collection)
Java without serializing and deserializing data
- Susan Spence mentioned that to share the data, you’d then give it a name and it would be available to other applications, because they share memory.
The idea of containers booting up within a nanosecond
-
She spoke about have a system in which shifting from one container to another is a process swap, so would take a nano-second instead of a minute. Perhaps renting a system to someone who needs that sort of access to that storage for say, only an hour.
-
There would be no disk communication latency because you would be working directly with the memory. That makes sense for numerical computation.
Data structures using Graph Theory
-
One of the concepts she spoke about very much reminded me of diffs or deltas in Github. So I chatted with her afterwards and she said they were very much looking into graph theory. I asked her why she thought there is a lot of a concentration in general in that area for solving computational problems, and she was saying because of the sort of complexities you get because of the intersection of attributes.
-
She spoke about using LSGI and other such algorithms. Also, SPARKLE, which uses a bit of Scala and Akka.
More pics (hardware)
The big boxes are FPGAs, which were used for protoyping…
- They will be replaced with ASIC
Questions
-
If everything is in one memory centre, with such a large data size, what sort of time and what sort of checks will be used for vulnerabilities/ someone hacking into your system?
-
I hadn’t heard of neuromorphic computing before. Would like to find out more about that.
-
Want to know more about Fabric Attached Memory
Overall, a wonderful night!
- A little bit of hype, but some incredibly smart people. I’m happy I attended, and I even saw Ken, my Xoogler friend! I also met some really nice robotics people.
The Lobby
The View
Katas
- replace format thingy
def task(w,n,c):
d = n * c
if w == 'Monday':
return 'It is {} today, James, you have to work,
you must spray {} trees and you need {} dollars
to buy liquid'.format(w, n, d)
elif w == 'Tuesday':
return 'It is {} today, John, you have to work,
you must spray {} trees and you need {} dollars
to buy liquid'.format(w, n, d)
elif w == 'Wednesday':
return 'It is {} today, Robert, you have to work,
you must spray {} trees and you need {} dollars
to buy liquid'.format(w, n, d)
elif w == 'Thursday':
return 'It is {} today, Michael, you have to work,
you must spray {} trees and you need {} dollars
to buy liquid'.format(w, n, d)
elif w == 'Friday':
return 'It is {} today, William, you have to work,
you must spray {} trees and you need {} dollars
to buy liquid'.format(w, n, d)
- Spongebob alternate case one
function spongeMeme(sentence) {
var arr = []
// push lower and upper case correction to arr
for (var i = 0; i < sentence.length; i++)
{
if (i % 2 == 0)
{
arr.push(sentence[i].toUpperCase())
}
else{
arr.push(sentence[i].toLowerCase())
}
}
// join arr to string
var pete = arr.join('')
return(pete)
}
- return highest num in arr and throw err if arr.length is 0
function highestNumb(arr) {
if (arr.length == 0){
return one;
}
arr = arr.sort(function (a, b) { return a - b; });
var a = arr.length - 1
if ((arr.length == 0) || (arr == [])){
return 1/0
}
else{
return arr[a]
}
}
- hex to int
def hexa_first_principles(hexadecimal):
a = int(hexadecimal, 16)
return a