Okay, we're here, it's live, day two Oracle Open World. Moscone is draped in red, that means the cube is here, and we're covering wall to wall. This is day two Oracle Open World 2013. This is the fourth year we've been here at Oracle Open World inside the QLogic booth. Our friends at QLogic are kind enough every year to help us out with the cube and give up a fair amount of their booth space so that we can broadcast live from the show floor. This is the QLogic booth, this is the cube where we extract the signal from the noise. We go out to the events, we're bringing the best guests at these events, bringing their perspectives to you. I'm here with my co-host, Stu Miniman. Vic Carbat is here, he's the Vice President of Marketing at QLogic. Vic, welcome to the cube. Thank you Dave, good to be here. So, what do you think Open World this year? 60,000 people, the lines are getting longer. People keep coming to Oracle. It's hard to get into the city, but it's worthwhile being here. So, what's the vibe like here? You've been hanging out the booth a little bit, customers coming by, what are you hearing on the show? So, there's a lot of excitement. You can see that there's a lot of things happening in the industry, both databases and enterprise in general and around storage specifically. It's a level of industry excitement that hasn't probably been there for a couple of years now. So, it's good to see that people are re-engaging at the technology and user technology deployment level. Vic, you've been in the industry for a while now, you've been tracking some of the changes. What are some of those changes that you've been tracking? And what are the ones that are important and relevant to QLogic and its customers and how are you guys really leveraging those trends and capitalizing on those trends? So, I think there's two kinds. There's technology trends and then what's important to end users. And you have to be careful to differentiate between those two. From the technology side, obviously a lot of activity around SSDs, a lot of activity around low latency transports, more CPU cores, meaning more scalability going into individual server nodes, which is driving IO requirements. Virtualization, again, continues to increase from an OPEX optimization standpoint. So a lot of technologies that feed into some of those trends are what QLogic and other vendors are looking at. End users, I think, a little bit different. They're looking at how do we get more out of existing infrastructure, whether it's putting more multi-core processors in, trying to reinvigorate existing infrastructure in some cases, and the vendors that can help them leverage their existing infrastructure are likely to win. At Wikibon, we've looked at these forces of some of the things that you mentioned, flash, virtualization, and what used to be known as Moore's Law, we still generically refer to it Moore's Law, but now we're sort of attacking it with cores. And the multiplicative effect on IOs, and literally it is, you do the math and you've got more cores or more processing power, you've got virtualization, which creates the IO blender, you've got flash, which speeds everything up. And it creates just massive, massive amounts of IO, you combine that with data growth, and it's a real challenge. So, what role does QLogic play in addressing that stress point in the industry? So, Dave, you mentioned Moore's Law, I think the other code assault to that is Amdahl's Law, where you can optimize any piece of an equation, but even if you take that piece of the equation to zero, unless you've done something with the rest of it, you can make a whole heck of a lot of difference. And I think what we've seen is Intel and the OSVs, they've done a great job on one side of the equation. Now the IO vendors are focusing on what we do here. And on the IO side, it's not even a question of just saying, hey, let's go drive more IOPS or drive lower latency, but looking at it from, again, Amdahl's Law perspective of where are the real bottlenecks in the infrastructure? And this is where some of the things we're doing with regards to our fabric cash products, really look at it from a different perspective. It's like, we're not going to necessarily optimize for a particular microbenchmark, but let's see what it takes to optimize application performance. So you're talking about a systems view? Precisely. Okay, and to your point, you guys, you don't build systems, end-to-end systems, but you work with people that build end-to-end systems. So how do you gain visibility on those other parts of the system given your place in the value chain? Obviously there's partnerships and there's collaboration, but I wonder if you could specifically talk about how you address that challenge? Well, internally at KeyLogic, we've got an entire organization that engages with end-users at a very deep level. These guys are chartered with looking at what the end-user pain points are, and then we have other teams that engage with our OEM and OSV partners. So basically between these three legs, we're able to triangulate effectively in terms of where the real pain points are and get perspectives from different vendors. So now we can get an OEM technology perspective, an OSV technology perspective, as well as an end-user pain point perspective, and try to make the right decisions on that basis. We're certainly a very focused OEM company, so our route to markets are still very OEM, but having that feedback is useful. So Vic, if we look at some of these trends that are going on, QLogic's made a lot of changes. At least I've been watching QLogic for over a decade now. Many people would think of QLogic as a fiber-channel company, but can you talk a little bit about what QLogic's doing just in general? Is it fiber-channel, there's Ethernet, there's Flath? How is QLogic chaining its conversations with its OEMs and its relationship to customers? So, Stu, I think the company at its roots eight, ten years ago was a fiber-channel company. I think now I would more rightly characterize us as a high-performance storage IO company. And what we've really done is combined a collection of technologies, whether they be Ethernet or other block storage technologies, and we're using those as a foundation in the launching pad for other products. For example, Fabric Cache. Fabric Cache is one example of where we took stuff that we developed through our block storage protocol expertise in both fiber-channel and iSCSI, combined it together with what we've done in some of our routing products, and even though the routing products were much of a focus, that IP was combined together to generate the Fabric Cache technology. So we're looking for those types of common threads where we have a lineage and a heritage of technology excellence in storage and how we can leverage that into some of these new product spaces. Okay, I wonder if we could talk for a second about kind of the cloud, because if you look at hyperscale environments, the keynote this morning, you had EMC and Oracle both talking about their vision of the future. You just get pulled in through your relationships with the EMC's and Oracle's of the world, but how do you view that changing dynamic of how Google and Facebook build architectures and how the enterprise are going? Where does Q-Logic fit in the picture in those kind of environments? I get asked that a lot, and I think you have to view the Googles and Facebooks as part of the cloud, but not the entire cloud. If you look at the way everybody can't roll their own solutions. And there's also the whole aspect of enterprise clouds, private cloud infrastructures, and those still rely on some of the same things that enterprise data centers rely on, which is they have block storage requirements, they have security requirements, they have uptime requirements, and as the cloud model begins to manifest itself, managing that storage is going to become important. All the same things that we brought to the enterprise are still relevant in the cloud environment, albeit maybe with a slightly different complexion. And that's one thing I think people sometimes lose sight of, because everything is not about the Googles and Facebook. By the way, I love Facebook, use it all the time, but the enterprise guys, as they move into the cloud, they're going to have some of these pain points. So where we're focusing is how do we maintain the SLAs, the security, the reliability, and the performance scalability in those enterprise cloud environments. Vic, I don't know if you got a chance to see the keynote this morning, but Joe Tucci gave a keynote. Safra Katz introduced Joe Tucci as her friend. Joe reciprocated, calling Safra his friend. It was very, very cozy, which is fine. I tweeted out, you know, it's nice that they're cozy on stage, but I guarantee in the field it's not so amenable. But nonetheless, the interesting part was you had Joe Tucci set up a vision of a horizontal infrastructure, virtualization across the application portfolio, and then Thomas Kurian came on and set up Oracle's Vision. We've been hearing it for three or four years now. Vertically integrated stack, you know, but people called the red stack. From the standpoint of that horizontal infrastructure, more virtualized, cloud-based, across diverse sets of application portfolios, working with different networking storage and server products, you know, ecosystem-based integration, versus that sort of red stack approach. From QLogic standpoint, you sell the both.  But are there requirements that are different for each of those perspectives from your standpoint, or are they the same? I think they are different in that you're embarking on a corporate strategy that says that we're either going to be on open systems play, and we're going to work with ecosystems, or we're going to build an ecosystem around what we want to do. From QLogic's perspective, we've been more successful and we plan to continue our success driven by the premise that having an open systems approach where you're working with your ecosystems partners is the right way to go. And then layering on top of that value add that certain ecosystem partners can take advantage of. But if somebody chooses not to, it's not necessarily going to impact them negatively. They just won't get necessarily upside. So one of the things we've done here for example, we're doing a lot of end to end work. So we launched our 16 gig and CNA products with Oracle this week. But part of that was also that we are also participating with Oracle on some of their target side storage platforms. So moving forward, you now have the ability where you have our stuff end to end, it can take advantage and we can deliver different levels of performance, SLAs, QS. Stu was talking before with you, Vic, about your fiber channel prowess. You guys obviously have a hardened fiber channel stack. You're known for that capability and your implication was hey, it's more than that, we're evolving as a company. As the head of marketing, from a brand standpoint, what do you want the Q-Logic brand to stand for for people? I think the most important thing is trust. If you build your company on a Q-Logic infrastructure, you can count on that product to be there for a long time. If there's any issues with it, you can count on Q-Logic to back it up. Because at the end of the day, whether you're talking about enterprise or enterprise cloud, that's the key thing of value. And when we say, so trust in the context of the storage IO connectivity in your data center. Who do you want to turn to? Q-Logic. Okay, so my last question, Vic, so what should observers be looking for? Sort of milestones that you want to hit for the company, for the marketing group, for the organization overall, over say the next 12 to 18 months. What should observers be looking at as indicators of your progress and your success? So I think you're going to see continued activity on the fabricash side as we continue to explore that market and expand the features and functions that we offer in there, looking at more end user value being brought back in that we can deliver to our OEMs as a product. I think you're going to see accelerated rates of innovation. We have 32 gig fiber channel on the horizon, 128 gig fiber channel coming after that. And that's something that has changed, I think people's worldview has changed versus four or five years ago where they might have said, well, 16 gig might be the end of the line and Ethernet's going to be there. I think what we found is now there is room for FCOE, there's room for fiber channel, there's room for iSCSI, and there's customers that do have religion on any of those vectors. You have to be able to address those needs. So you're going to see us kind of innovating in all directions. It's like the energy market, all of the above. All of the above. It's a buffet. Well, Vic, thanks very much for coming on The Cube. Thanks for having us in your booth. Really appreciate it. Thank you, Dave. Great to see you. It was a pleasure. All right, keep it right there, everybody. I'll be back with Stu Miniman. We're going to tease up the backup and recovery spotlight. Critical area data protection within Oracle. Things are changing, changing fast. Cloud's coming into the picture. So keep it right there. This is The Cube, right back after this word.


We're running out of original stuff to say. Did you get to watch me a Bloodsport II?  It was a great show. I did. I pretty much watched the whole thing. I really enjoyed it, man. It moves along really quickly. It's easy to watch. Maybe not for everybody. I love technical wrestling.    They just threw me into the deep end, but you put them in stuff, let them get out, and I came right out of like high school wrestling, so it was really easy for me.  So I love watching that.  I like watching that style. So I was pretty disappointed not to be there, but, you know, I thought it moved nicely along, you know. Was it great to see another side of Anthony Carelli, the man that most in the room know is Santino? Dude, yeah, he's a bad motherfucker. I was actually in Toronto. I was going to be training up there at his treat, his gym blood sport, but his gym battle arts. But unfortunately, I got hurt, so it didn't get through.


Well the BSU women's basketball team took the court tonight look to snap a few losing streak. They've lost their last three games after starting the year with two wins. And we're trying to pick up their first win against Northern State since 2013 with the Beavers losing the past 10 matchups. BSU down 14-8 after one. And then Brooklyn Bachman took over. Shay Oman with the fast break swings across to Bachman. Spots up to three, it's good. They're down 20-16. A few minutes later Bachman driving through the paint gets a left handed layup to fall. She had nine in the quarter for a season high 19 overall. But the worlds they dominated down low all night outscoring the Beavers 32-14 in the paint. Brianna Kussler with the and one. BSU fights hard but they fall 69-57.


And so, if you are trying to convince a man, and I get this all the time, right, like this usually happens when a woman isn't getting her needs met, right, a guy's not pushing things forward, he's not moving things forward. A lot of times what will happen is a woman will start trying to convince a guy that they're good for each other, or if he doesn't want to be exclusive, she'll start counting all the ways that they're good for each other. If he breaks up with her and they meet up again as friends, she'll start talking about all the things that, you know, the reasons why they're good for each other and they're perfect for each other. And we're such a great match, and you should pick me because there's no other woman that'll treat you as well as I will, right? And all these things of like trying to convince a guy, and that just makes him feel like you're not the right person for him. And so, it just comes off as really needy behavior, and it shows that you don't get men, and that you don't get relationships, and that he's just too good for you.  Because he doesn't, he doesn't, it doesn't make him think, right? Like, a lot of women are like, oh, well men think, you know, logically, and men are more logical, they're the more logical, you know, of the sexes, right? And men don't make decisions based on logic, right? It might seem like they make decisions based on logic, and there might be more logic that goes into decisions opposed to being, you know, just feeling stuff out and stuff like a lot of women sometimes do. But guys make decisions based on how they feel, right? And if he feels a certain way, and I'm going to do a live stream on this maybe next week, where if a guy feels a certain way about you, then he's going to, he's going to move things forward. He's going to push things forward. He's going to fall in love with you. He's going to do all the things that you want him to do because he feels it, right? And he feels like it's the right thing to do.  Guys buy nice cars for a lot of different reasons. One of them is because they feel good. They want to feel like they're important. They want to impress women. They want to do all kinds of things, right? And so that's why men do things, just because of their emotions.


The future is so uncertain now, the world is going through a lot of uncertainty. So anyone who says they can predict the future now, well, deserves a lot of credit because I think a lot of people can't. Let me put it that way. What I'm trying to say is in that future though, we know that certain things are going to happen. There are certain facts that are inexorable. We know that technology is here and it's not going to stop and it's going to drive change and transformation. So let me just use that as an example. I think when you have that, the key is to be abreast and on top and if possible ahead of the curve of the changes that are coming. And the only way to manage it is to keep a really flexible organization where people have strong analytical skills where they're flexible and open to learning because you don't know what future jobs are going to come. You don't know exactly how the future is going to be, but the ability to adapt when that future comes and confronts you and to make a success of it, I think is key. So it means an open mind, strong analytical skills and the ability to change.


All right guys, welcome back to the channel. If you're new my name is Bobby guys Let's talk about the Macedonia question after publishing those infamous three videos Many of my own countrymen contacted me and asked certain questions All right, let's be honest 90% of those males wear death threats hate males and people telling me to My mother epa phala bratia. Thank you very much. That was to be expected However, before I start this video, I want to clarify guys. I love Macedonia, I love my own country this message doesn't come from hate, but from the heart I love my fellow people. I love my land Obviously, but you know what I love more than my own land more than my own family That is the truth. I love the truth and I cannot help it This is why this channel is about seeking truth. I said it before that truth shall set you Free it is the most valuable thing we got as humans We try to find objective truth and therefore When we talk about the Macedonian question when we talk about the country as such Many of you were concerned and said you want to sell us out. You want to sell us to the Bulgarians You want to sell us to the Greeks guys? I don't want to do anything and I can't do anything I am one person in the end it boils down to the people at least this would apply if we have a true democracy of course, we are all victims of corruption politically Unfortunately, especially on the Balkans. We've seen our fair share of that however About the country Macedonia Nobody can take away your country Legally since the 40s. It is its own country Obviously, that is undoubtedly so please understand this Macedonians reached out to me and told me it is our basic human right to have our own country Dar of course, that is absolutely correct. Let's think about the Australians Who are the Australians? of course originally They would be the Aborigines But who are the modern-day Australians? the modern-day Australians Genetically their ancestors around about 400 years ago are of course Englishmen They call them pommies for a reason prisoners of Main Island Back in the day Australia has been built through prisoners of the Main Island of England Australia is still under common wealth and Australia just a couple of years ago used pounds as currency So it is as English as it could be however Again, we respect the basic human rights. It is obviously its own country The same applies to New Zealand So now no New Zealander, no Australian wants to be called an Englishman I get that we understand that we respect that no worries However, if I open up the history book, I will see hey Englishman Build that country the basis of that country is of course English Let's talk about France now Who built France? the Franks the Franks who are the Franks See Germans Germans Charles Charles Carl Carl Alemania Alemania Alemania Get a money Germany. There you have it. So Charlemagne was a German from a German tribe who build up France Now is France its own country Undoubtedly so of course it is it has its own culture And the beautiful wine of course it does However, when we look into the history books, we will see the truth We will see it is based on Germany all good doesn't change the fact that they are now French Fair enough in this day and age we can identify as anything basically we see woman Identifying as men we see men identifying as women and that is all right Do your thing if you have to however if I choose to look into a biology book What will I find? X Y Chromosomes I will see what defines a male and I will see what defines a female I will understand that as objective as I can as a human being and then I will go from there Now if I go to Thailand and there is a lady boy and he she wants to be addressed as she Alright, no worries. I say she to the trans woman It's not a woman. It's not a man. It's something totally different I do understand that this man clearly doesn't want to be a man after doing seven surgeries Putting in plastic breasts and cutting off their genitalia. I got the memo. I understand You don't want to be a dude.   However, if I look into the biology book, I want truths I want to understand what the reality of this nature is So now Again, let's talk about the Macedonian question and if you're new to this channel I know I rant I shout I have a way about me that this could be misinterpreted However, I want to remind you. I'm coming from love. I love my brothers and sisters My whole family is in Macedonia cousins uncles and everybody Everybody's still there Making those videos. I get into trouble that I don't have to involve myself in but why do I do it? I do it because I love the truth yet again So now when we talk about the history again, all the links are in the description box below You can do your own research. Don't take my research for granted I am not saying that there is no propaganda on the Bulgarian side I'm not saying that there is no propaganda on the Greek side Ladies and gentlemen, this is 2020. We have inside jobs false flags everywhere Governments are corrupt Governments wrecked us plenty of times. This is nothing new There are elitists in this world that want to control every aspect of human life Of course, there is propaganda on every single site That is what it is. Nobody is innocent. We are all equally guilty However, we do have material such as the encyclopedia Britannica Where we can research what has happened in the past 700 years, there are documents, Ottoman records, etc. etc. I talked about it So now to sum this up What do I want? I want the Macedonian people to see the truth I want the Macedonian people to see what their history truly was like Not a romanticized version of Tito Not a falsified version of the communists No matter if Macedonian, Serbian, Bulgarian or Greek Communists are all the same criminals This is the truth and we do not want to base our existence on a false reality Which isn't even a reality, but some sort of parallel universe that we invented or that has been fed to us We want the truth, brothers and sisters. I hope you want it too I hope you want to pursue truth and not be right for the sake of being right This is not about winning an argument. This is about understanding our roots This is about reclaiming our heritage. This is about understanding who we truly are Don't you understand he who controls the past controls the future? Our whole future has been defined by communists. We've been misled. We've been brainwashed This is a message from the heart When I see young people in Macedonia, I see nothing but hate No matter who I involve myself with in discussion All I'm getting is death threats and insults, and I'm not the only one. I'm not a special snowflake I talk to many people. No matter if they are from Macedonia or Bulgaria or Greece It is just a big show.  Just see it as objectively as you can try to understand the other side Can it truly be that we are the only one who got it right? If you have an argument with a person Shouldn't you listen to the other person to understand the world view? I know this very hard for us on the Balkans. We have this huge temper this huge ego We want to be right. No matter what we do. I Lived on the Balkan. I know how it is. We are right always But see the Bulgarians think they are right the Greeks think they are right the Macedonians think they are right There is an objective truth If I say this is a water bottle and you say it's a Coca-Cola Somebody is right Somebody has the truth. It's not that we can agree then and say, you know what we are both right No one happens to hold the truth and sometimes it is not us It happens. I'm not saying that Macedonia is lying about everything But there are certain facts that we should embrace and we should try to understand We shouldn't sit there being ignorant arrogant and just acting as we know it all Why is the opposition wrong then try at least to debunk it? So guys on that note again all the links are in the description box under this video You can click on it and go through the links books articles historical records Try to debunk me.  No worries Take this video share it with everybody share it with knowledgeable people share it with Historians if you will share it with people so we can have a discussion Listen, this is not a message of war. I think you would all agree that we had enough wars on the Balkans Man, do you think that I want to see further separation? This is a message of unity all I wanted is for the people to understand That we have common ancestors that we are one people that we are brothers and sisters That we especially as Christian orthodox should embrace each other Should celebrate our union. Isn't it funny? Isn't it comical that when the EU comes about everybody wants to unite no worries Everybody wants to be in the EU but when we as people as Christians if you will as Balkan brothers and sisters, why can't we make it happen? Why can't we unite? Why can't we bring ourselves together through love and not through hate? I still don't see you understanding my message It is about love. It is about unity It is about coming together as brothers and sisters and not to see a whole generation Being brought up with more hate. Have you seen the comment section? Have you seen the comment section under other videos in chats?  Where's this hate coming from? So many people as I said they're flagging my videos For what exactly if you disagree open your mouth like a man talk No worries.  Why are you so insulting? It shows a huge insecurity If you would be so secure about your national identity You wouldn't have to insult people on the internet. I wish everybody nothing but the best The Greeks the Bulgarians the Serbians. They told me hey, you never mention us Of course, man the Serbians the Croats the Albanians the Macedonians Everybody I love all people some of you make it very very hard to love you However, I'm still trying as a Christian orthodox our mission is to love all people to not look at skin color at Nationality but to love and embrace all people. This is what we're trying to do But of course, there is a threat on this earth. We say it comes from the devil. What is the separation? What is this hate that is in your hearts? You have to open up your hearts in order to listen to the other side So now let's sum this up this video is about you It is about you making your own research. It is about you debunking me about spreading the truth about Collectively understanding the truth. So we have a global consensus Knowledge is power without knowledge. All we are left with is slurs random screams and shouts like animals We as humans are in the position where we can educate ourselves Especially now in 2020 with the internet. We can do our own research We can find the objective true and this should be our pursuit as people in the end It does not matter who holds the truth right now. It is about finding out what the truth is All right guys and this is it for today's rant. It is longer than expected. I hope you enjoyed it I hope you made it all the way through if so leave it a thumbs up if you haven't subscribed already guys Please do so make sure to share this video so people understand this message I don't want to see people randomly Stumbling across my first video and not understanding what this message is This is a very important message for those that want to hear for those that want to understand For those that are blind, they won't understand doesn't matter what you present them with Alright, but this is it for today as always may God bless you all much love and peace Oh


The sun came in when I was nearly needing to drop below the spin of my mind. Just the writing of it took me into the place that it seems to be. Dropping into stillness Beneath the mind that's been falling by yet The tender peace within Drift deeper into silence Devastating on that simple


Item number SCP-868 Object Class Euclid Nunti Special Containment Procedures Two D-Class personnel infected with SCP-868 are to be maintained in a soundproof humanoid containment cell supervised by at least one armed guard. Personnel wishing to experiment with SCP-868 must submit to an interrogation and background check to confirm their loyalty to the Foundation and its methods. All persons suspected of hosting SCP-868, along with all persons living in a community where an infectee has been located, are to be tested for infection. Any subject found to be a victim of SCP-868 must be treated with AMN-868. Should a population treated with AMN-868 exhibit a noticeable amount of unusual behavior, a follow-up amnestic should be distributed. Any reports of SCP-868 infection in the general population are to be treated as a breach of secrecy. Personnel spreading SCP-868 intentionally or attempting to access the current carrier of SCP-868 without following protocol are to be court-martialed, if applicable, and stripped of all security clearance otherwise. Description SCP-868 is a meme that resulted from a memory improvement therapy designed by Prometheus Labs, Inc. Surviving documents indicate that the researchers responsible for creating SCP-868 were unaware of its memetic properties until shortly before the facility was destroyed. The process and materials necessary for administering this treatment have not been recovered, although recovered materials do not indicate that its creation required anomalous items. SCP-868's transfer mechanism is poorly understood. However, it is believed to be transferred via two-way verbal communication with an infected subject for no less than 30 minutes with symptoms manifesting between 4 and 9 days after infection. Note, repeated testing has shown that the content, tone, and language of the conversation is irrelevant. It is hypothesized that SCP-868 alters the subject's behavior in a manner that is too subtle to detect with current methods. Stage 1 symptoms typically include a significantly improved short-term memory with subjects typically being able to clearly remember events and information for 80% longer than they would otherwise, on average. Subjects also report the ability to recall events that happened after initial infection with greater accuracy than they would otherwise. This has been confirmed by testing. The effects of SCP-868 become more pronounced. The longer the subject is host to the meme. Stage 2 effects of SCP-868 become apparent roughly 5 weeks after infection. Prior to this, subjects are frequently able to remember with near-perfect accuracy any event or information received after contracting SCP-868 and from several days before. However, over the course of between 1 and 5 days, directly proportional to the subject's age, this effect extends to encompass the subject's entire lifespan. SCP-868 poses a significant risk to foundation interests due to its interaction with subjects that have been affected by amnestics. Testing has shown that hosting SCP-868 for any amount of time is sufficient to prevent amnestics from affecting its memories. In addition, during the second stage of the infection, SCP-868 completely negates the effects of any amnestic administered at any point in the subject's life, potentially allowing the subject to remember sensitive or dangerous information. Prior to its full containment, SCP-868 caused five secrecy breaches, necessitating the termination of red individuals to prevent the spread of sensitive information regarding the foundation, SCP objects, and other classified data. Subsequent cleanup and cover-ups have cost an additional $$. Containment breaches after its containment have required an additional $$ to contain. Addendum 868-1 In June, 19 $$ doctors Carson and Basak received access to SCP-868 after filing the relevant paperwork. Note, at this point in time, SCP-868 was classified as safe, and its containment procedures were minimal. Approximately six weeks later, reports from Bangladesh indicated that residents had become aware of the existence of SCP- which had been recovered from that location three years previously. Investigation revealed that the village and some outlying areas had been infected with SCP-868. Because AMN-868 had not been created at this point, it was necessary to neutralize the village under the pretense of a flood. Under interrogation, both personnel admitted to releasing SCP-868. See incident report 868-7 for details. Addendum 868-2 In November 2008, Foundation researchers developed a Class B amnestic. Class A and C versions are currently under development. AMN-868 that was capable of reversing the effects of SCP-868 and preventing spread of the infection. In 70% of cases, AMN-868 will only cause mild side effects, specifically severe headaches. With an estimated 10% of those at risk of developing early onset Alzheimer's disease. In the remaining 30%, AMN-868 will function, but will also cause self-destructive tendencies and prolonged antisocial behavior. See report for details. Lesson complete. If you missed the previous orientation, go watch SCP-867 Blood Spruce right now. Or for the complete course, watch this playlist.


The new Weapons Generation Facility, or WGF, consolidates the weapon maintenance, storage and training functions required to support the intercontinental ballistic missile and strategic bomber mission. The current weapons storage areas were built in the 1960s to 1970s. The new WGF will provide more secure and efficient operations. Maumstrom Air Force Base is the second of four sites in the Air Force to receive one of the most advanced and secure infrastructure systems in the United States. Senator, thank you for being here. Civic leaders, state leaders, community partners, industry partners. So to say today is a big day for America as an understatement. Today is a big day for the state of Montana. Today is a big day for the United States Air Force. Today is a big day for Air Force Global Strike Command. And today is a phenomenal day for Wing One. October of 62, it all started here. When our nation was threatened in the Cuban Missile Crisis, what did the President do? He stood up Wing One. I flew over Alpha-6 this morning and saw the first location of the first ICBM that won an alert for our nation. It started here. That's a pretty phenomenal thing to take stock of as we break ground on a groundbreaking day of a weapons generation facility that gives our airmen the tools, the facilities, the safety and security required for our nation's most important mission. It underpins everything our nation does. Absolutely underpins everything on the international arena. It provides our nation's senior leaders the backstop for diplomatic negotiations. And it started right here in Montana. It started right here in Wing One. Thank you, General Bousier. Ladies and gentlemen, please help me welcome Colonel Catherine Tanmore. Senator Tester, General Bousier, it is my honor to be here today to help celebrate this important milestone on behalf of the U.S. Army Corps of Engineers, Northwestern Division Commander Brigadier General Jeff Van F. and the Seattle District. The Corps of Engineers provides engineering solutions for our nation's toughest challenges. As the nation's engineers, one of our missions is to provide worldwide management for military construction programs like the weapons generation facility. This is vital infrastructure for the 341st Missile Wing and Team Modstrom, providing modern up-to-date technology to replace decades-old facilities here. The Seattle District understands the importance of the WGF program to the Air Force and is committed to safely delivering a quality project on schedule at budget. It's the mission for the past year we've been staffing up a resident office on base. It's been a while since we've had a resident office here and we're bringing in high on mom's drum with construction traffic for future construction projects. When we anticipate we will grow our team mom's drum work for here in October and there are more than 70% complete with foundation peer drilling, a great start considering the Montana construction season. They anticipate completing this drilling within the next three weeks, the construction start of a quality facility that will serve mom's drum Air Force Base and the nation for many decades to come. Thank you again for the opportunity to attend today's ceremony. At least it's not snowing like last weekend. I look forward to continuing to work with the team to deliver this important project for mom's drum Air Force Base, Global Strike Command and the United States Air Force, building strong to aim high. Ladies and gentlemen, the construction for the Sentinel program weapons generation facility has officially started. Please join us for refreshments following the MH 139 ceremony at Hangar 4.


Okay, microphone is okay. Okay, so hello everybody. And apologies for the delay in starting we had some technical difficulties. First of all, great to be here. Thank you all for attending and thanks to the organizers. My name is Callum McPherson, I work for Quentinium and the ticket team. So mostly a software position. Yeah, I'm going to give you overview of a ticket or software package as well as a very brief overview of some quantum algorithms. So I'll start with some slides and then I will move to some gypsy notebooks to shoot walking through a tutorial how to use a ticket. And I will also have a brief section on Grover's algorithm. You can set round a link to get a repository. This contains the notebooks so you can follow along with me later after my slides are finished. Yeah, I should say if there's any questions. Yeah, feel free to interrupt and ask me for clarification. Let's get started. So just as we recap, it's maybe worth thinking about why we're interested in quantum computing in the first place. So in short, the reason we're interested in quantum computing is because there are specific problems where we can argue that quantum computing offers a computational advantage over standard classical computing. Here's a well known example of this. The first is shores algorithm which provides a near exponential speed up for print for a factory. And this is relevant to RSA photography. There's Grover's algorithm which I'm going to talk about that which provides a quadratic speed up for various unstructured search problems. So several applications in quantum chemistry and material science will thought that quantum computers is potentially useful for drug discovery and for finding the materials. And there are other applications which I'm not going to focus so much on, but these include machine learning and various combinatorial optimization forms. Here's an example of a quantum algorithm. This is called the variational quantum items. This is the example of a hybrid variational algorithm. Has anyone really with these before. One, maybe two. So yeah, I'm not going to go into too much detail here, but basically the way this algorithm works is that you prepare some. You prepare some quantum state, and this state is parameterized. And then you calculate some cost or some expectation value based on the program state. And then you wrap this up in an optimization loop and try and find parameters which maximize or minimize the value of the cost. So this is a hybrid quantum classical algorithm. Maybe something that's fairly near term terms of what we can achieve on the quantum computers we have today. But it has many disadvantages as well, which makes it challenging to extract an advantage from these types of approaches. An example of a classic or textbook quantum algorithm is Grover's algorithm. So, as I said before, Grover's algorithm solves unstructured search problems and can achieve a drastic speed up searching data base. But this is also challenging to implement as the circuit stated to perform this algorithm with a very large. So we have a quantum circuit here, we prepare a superposition of all of our, all of our states. And then we have this black box oracle here which marks the entry of the database that we're interested in, and we can form this kind of averaging procedure. We need to take these two steps iteratively, and then we amplify the ability of measuring the desires. So, apologies that was quite brief. So yeah, here is a sort of pictorial description of what's going on in Grover's algorithm. So we start with a uniform superposition of all states, we're interested in this particular state w as this is some entry in our database. So, we assume that we have access to some black box this oracle function, which applies a minus sign to the state that we're interested in and leaves all the other states below. And after we apply this oracle. We have all of our basis states usual and the basis state that we're interested in is reflected across the x axis. And from the next step, which is kind of an inversion around this average line here. So, then the state is then reflected back across the x axis. And if I repeat these two steps over and over again, this basic state is going to get a larger and larger amplitude and so by measure that state, then I will get the right answer with higher capabilities. So that was a very brief overview. I will go into some practical examples of that later on. So, if this is a bit unclear, then hopefully that's okay. So, now we'll talk about quantum software so already quite a lot of quantum software that exists for various practices. So I'm going to make a distinction between what we might call the system software of quantum computing and the application software. So system software is the stuff we need to actually run things on quantum computers, and application software is software that can be useful for various applications we might want to explore with quantum computers themselves. So under system software we have quantum compilers ticket is quantum compiler, it takes some high level representation of a program that's understandable by humans and transforms that program onto something that can run on the real device. We also have online services. So Amazon has offered web access to real quantum computers through AWS, Microsoft is something similar with Azure. So under system software we also have packages related to quantum error correction and error mitigation to try and improve the reliability of quantum computers. So one of these is called Kermit, which is a pun, and you might be using Kermit later on in the hackathon as well. And finally there are like actual pro special purpose programming languages based around quantum computing, well known example is Microsoft's huge shark, for instance. For system software we have libraries for quantum chemistry like in quantum, which is a chemistry package by continue for computation chemistry. There's packages for machine learning, and other other application is packages. We have a brief interlude on quantum hardware. I assume you've heard a bit about this already. So, currently, there are many games in town when it comes to the physics of quantum computers. So, one approach is to use track times, like we have a continuum, along with other companies like IQ and they continue. And then companies looking at superconductors like IBM, Google, spaghetti and so on. And there's, this is an exhaustive list of told there are many different approaches to quantum that use different physical systems to realize the humans. This is quite good because if you're not quite sure how to scale something it's good to have many different approaches attacking the parallel based on physics. And so what are some challenges that we might face with quantum machine. Firstly, the issue is that we don't have enough cubits for many of the most exciting applications. For instance, shores algorithm requires very large circuits to implement and also requires quantum error correction codes, which leads to a very large number of cubits you need for any practical use of shores algorithm. So the things we do have are subject to lots of complex quantum noise. Currently we don't have the capability to run error correction schemes at scale to correct these errors. So we have to make do with a lot of noise that corrupts the results of our computation. Another one to emphasize is that quite often the performance of quantum algorithms depends on a lot of like low level implementation details. So, if you have a large circuits more noise will accumulate over the course of your computation and degrade your results, but there's also the connectivity of the device and various other details we need to consider when thinking about quantum algorithms. So, you can access quantum computers through IBM, and here I've just gone to my IBM quantum account and asked you to show me a real device. So this is a schematic of the IBM Guadaloupe device, I believe. So this is graph, and this shows how the cubits are laid out on the real device itself. So we have some information about the various error characteristics of our real device. So we have this CNOT error, which is the error associated with performing the two cubit gates, which turns out to be quite important metric. Importantly, we can only have these two cubit gates between nearest neighbor, no less of our device. So, some compiler will have to solve for the constraints of this nearest neighbor interaction. So, yeah, what I'm trying to emphasize is that there's a large difference between the high level description of algorithms and textbooks and the sort of low level details of real experiments on hardware. So, just to give you an example, this is a circuit that I drew earlier, this circuit forms the quantum barrier transform. So here I have this, I have these Hadamard gates, which are single cubit gates, and I have these two cubit gates, these controlled unitary interactions acting between my cubits. And you can see that my cubits that are, I have all possible pairs of interactions between my cubits. So, you can think of this as, sorry, you can think of this as a complete connectivity graph. So, all of my cubits are talking to each other. And if I compare this to the topology of the device itself, the topology is much faster, so I've only got nearest neighbor interaction between these five cubits. So, some compiler will have to solve for the constraints of the device before I can run this circuit on a real, on a real quantum future. The device only have also as a limited gate set, so I need to translate my circuit into a gate set which my device understands, and in doing so hopefully I don't introduce too much additional error into my presentation. I'm going to have shown an example of the circuit once it has been compiled to the real device and you can see that now each cubit is assigned to a physical node of the device itself, and my circuit is in the IBM gate set and has only nearest neighbor interactions between the nodes. It might look like this is not a nearest neighbor interaction, node one is connected to node three, but if I look at the graph, I see that node one and node three are nearest neighbors. So now, after that introduction, firstly, are there any questions on what I've presented so far. So what is Ticket now? Ticket is our software library. It's developed by us at Quantinium, but it's fully open source. It is a high performance compiler for quantum circuits. So, fully open source, so you can visit us on GitHub. It also has the property of being so-called hardware agnostic, which is a strange term, but basically means it doesn't make any fundamental assumptions about the kind of quantum device that you want to run your circuit on, so it can target a wide range of quantum hardware platforms. And an additional bonus is that it's compatible with a lot of other popular software libraries in the ecosystem, so if you're familiar with Qiskit or SIRC or Penelain, you can use Ticket in conjunction with those tools at a sort of complimentary. So you can install Ticket, which I would encourage you to play around with. You just install this with the PIC package manager, so PIC install package. And there's a separate command for the different extension modules. Oops, sorry for the change in slide colour. So, how does Ticket structure? So, underneath Ticket is high performance C++ library. This ensures that we have an efficient implementation in that we can rewrite circuits with good quantum performance. And we then have a Python interface, which is PyTicket. This is what you install. And this is hopefully more user-friendly than writing everything in C++. And then we have different extension modules to interface with different software and hardware platforms. And then we have extensions to interface with Qiskit and SIRC and Penelain, like I said, so you can build your circuits in any of these software libraries and then convert them to Ticket and target any quantum device which we have an extension for. And this is not an exhaustive list of extensions. We have several more. So you can just run your circuits on an IonTrap device or an IBM Superconducting device or whatever you like. Okay, so that wraps up my slides. I'll now get into the notebook section. Are there any questions so far? Nope. Yes. So how does it make simulation work? Yeah. So does it like find lots of consumations if we have made the search data? So, when you're talking about circuit optimization, the main benefit is that it improves performance in the presence of noise. So if you're doing like a noiseless simulation where you don't model the device noise that's present in a real device, then you might not notice much difference from circuit optimization. If you think long term, perhaps a compiler could minimize the depth of the circuit, so the overall runtime of the computation could be improved. But yeah, for noiseless simulation, I think the main benefit of optimizing compilers is for noisy simulation and for experiments on real devices. Does that answer your question? Okay. Okay, so now let's open up my notebook. You bear with me. Okay, so these notebooks, I have two notebooks and they should both be in the GitHub repository that you were linked, so feel free to follow along or not, you can just watch me. Okay, so I'm going to talk you through how to build basic circuits in a second. To build a circuit, we create an instance of this circuit class here. I should say, is everyone fairly familiar with Python or is there, most people used Python before or do you know? I'm going to assume that you know how to do some Python followers, but okay, there's also a cheat sheet going around that should be helpful. Okay, so to build a circuit, we create an instance called this circuit class here, and then we can build our circuits by adding gates sequentially so we can add Hadamard to the first qubit circuits or zero index, so we add it to the zero qubit. Then we can form a controlled x interaction between the zero and the first qubit here, and then we can draw a nice picture of our circuit. So it looks something like this. So we have this circuit renderer here that's interactive and we can swap between different visualizations or we can display in dark mode. So yeah, this this circuit builds a entangled bell state and we can verify this by simulating our circuit on this very simple state vector simulator we have here. So I import this air state back in from one of the extensions and then I can just execute my circuit. Tech it will do some matrix multiplication, it will give me this the quantum state that comes out of this circuit. So, here I have some state vector as a non pyrite, and these are my amplitudes of state vectors so if we compare this with our, with our bell state we can see that this matches what we expect from this circuit, it's just an entangled state with equal amplitudes and the same. So hopefully that makes sense. Nothing we can do is we can do a shop space simulation so we can do our simulation as before but we can instead probabilistically sample from our state vector. So this is more in line with what happens in a real quantum system where you have probabilistic measurements. So I added some measurements, measurements on the end of my circuit here. So, now I can. So I'm using this air back noiseless air back in simulator, so I can run this circuit for 1000 shops, all this means is I just execute my circuit 1000 times and then I gather statistics about which measurement outcomes are more or less portable. So I can get this result objects result object, and then I can print out this dictionary here where the keys are the basis states and the values are the number of shops that landed in that basic state. So from this I can. So you can see that as we would expect we're approximately 1550 distribution and the zero zero and one one state which is consistent with what we expect from measuring the bail state. So this isn't exactly 5050 as it's still sampling now you're still flipping a coin every 10, but this is just what we expect. And then I can. I can make this pot here, and you can see, yeah, this is just a graphical representation to show that I have 5050 probability of measuring zero zero one one. So there's a lot of other gates that you can add to your circuit and through a ticket. For instance, you can add these parameterize gates. And so if you're doing one of these variational algorithms when you have these big parameterize circuits you might want to do this. So you specify the parameter value first, then you specify the qubit the gates on. You can also add additional less common gates through this type, you know, you're so I can build a circuit that I can add a multi controlled exit top legates to cubits zero one and two. So you can see this in the diagram here. So this red gates this multi controlled X. So if you're not sure what this does. This applies a bit to the to this cubits, both of these control cubits are in the one state. So I'm, I'm performing an X operation conditional upon the values for two of my curious. So the circuit we've considered so far are fairly trivial. So, perhaps we'd want to consider a more interesting circuit. So let's build a circuit for the quantum free transfer, which I mentioned earlier. This is an important sub routine in many quantum algorithms shows up in shores algorithm and various approaches to quantum chemistry. So this is really what this transformation is doing. And this is this. Sorry, I find this year three operator to my basic state, perform this transformation here. So, and I'm transforming from the computational basis to the period basis. So if you're familiar with the classical discrete free transform, this is almost exactly the same mathematical transformation, but it's just applied to a quantum state. So I have my vector. And what I get is a large vector with where the amplitudes are my three coefficients. So I can implement this circuit and, and take it fairly easily by just adding a bunch of single cubic gates and some control gates here. I'm sure you had to do that.  So, so it looks something like this. So, yeah, so I apply. So this kind of pattern that the circuit follows. So I apply a Hadamard, the first few bits, and then apply control rotation to the first cubic condition going to the second, and then another control location, then I jump to the next qubit form another control location. So you can imagine this kind of pattern just repeats for larger instances of the constant free transform. So say I want to generalize this, this pattern, and then just write a function, which builds the n qubits free transform. I can create a circuit here with this function. I can then iterate to my circuit and apply a Hadamard on every gate, and then I can for every, for every qubit, I can apply a number of CX gates that decreases by one when I jump to the next, sorry, a number of two cubic gates which decreases by one when I jump to the next qubit. So I have this counter here, and then I subtract this value of this counter so I'm just adding all these two qubits. And finally, this is not that important, but this is just to make the mathematical operation seem nicer. I can just add some swap gates to the end of my circuit. So I'll have a swap between the first and the last qubit and the second qubit and the second to last qubit. And this is just a pattern that makes the unitary operation nicer. So if I wanted to build the QFT for the, sorry, one second, for four qubits, I can just plug the value of four into this function, and then I can draw my diagram, and then we have the pattern that we expect. Okay, so, like I said, the quantum Fourier transform is an example of a subroutine, so it's a part of your quantum algorithm that will appear as a block in combination with other subroutines. And one thing that you might want to do is wrap up this subroutine in a box because if you just look at raw quantum gates, it's often quite hard to tell what's going on. So if I want to build, I can wrap the circuit, I have above here, up into a box, and then I can just append it onto the end of my circuit like this. Sorry, so I can just scroll down. Now I think that's useful to do and take it is to synthesize a circuit to form specified unitary operation. We can just pass a ticket NumPyray with the unitary operation we want to form and take it will automatically generate a circuit to implement that whatever, whatever operation is specified. So for any, for any operation up to three qubits, we can just automatically get, get a circuit for any valid quantum operation that we want. So we can do this with the two qubit unitary box, we can just pass a NumPyray, like I said, and then we can add this box to a circuit, and then we have something like this. So this, this two qubit unitary box performs this fermionic swap gate. This is just an example of a gate that I came up with earlier. So this is just the standard swap gate but introduces a minus sign along with the swap. So it's similar to fermions. So, perhaps this box in that informative so we can like break the box down with this decomposed boxes operation, and then we can find out what's inside. So this circuit, this unitary box is implemented in terms of these single qubit gates and these entangling TK2 gates. TK2 gates are just take its own internal representation, but they're easily converted to more familiar gates that you might recognize. Yes. Okay, so the input to a CERC box is a circuit. So if you're a user and you want to wrap some circuit that you have up into a box and then add it to a diagram for like easier visual interpretation, then that you can do that with CERC box. The unitary box, you pass it. You don't know the circuit in advance, and you pass it non-pirate and it will automatically build a circuit for you. Yeah, so anyone following along the notebooks on GitHub? Okay. Let me know if there are any technical issues following along. So another thing you might want to do is you might want to export circuits from a different format. So one thing that's quite widely used is CASM, which is sort of a low level specification language for a quantum circuits. And I was introduced some years ago, so just a fairly low level description of the quantum gates in your circuit, similar to like an assembly language or something. So if I have a circuit saved as a CASM file, then I can just read this CASM file in and then generate a circuit from that. So I can do this here. I've got my CASM file here, and you can see that this is just a fairly bare bones representation of the circuit here. And then I'll switch back here. It should have a nice circuit diagram in my important circuit. So, yes, this important circuit happens to be just an algorithm called phase estimation. So I'm going to use this later on in the demo. So I won't, don't worry too much about the theory of what this does, but I just have a bunch of single cubic gates, and then I have a bunch of these controlled unit trees again. And then I have quantum and inverse quantum free transport at the end here. So, what this does allows me to calculate eigenvalues of some unitary operator to some chosen position, but that's not going to be important in this talk. So I can analyze the circuit by asking take it how many gates it has so I can just use this end gates property of the circuit. And I find out that I have 21 gates in my circuit, and 11 of these gates are to keep it gates. So it's counting these swaps and these control unit trees. So the number of two gates is maybe important to track your thinking about circuit optimization because at the level of physics they introduced much more error than a single case. So this is perhaps a metric that you want to minimize if you wanted to run your quantum computations more reliably. Okay. And shows how to build circuits is ready for the questions about that parking and get on to running and experiments on simulators. Okay, seems everyone's okay. So, the, all the simulations I've done so far have been totally noiseless. So normally source of error has been sort of the sampling error. But one thing I can do as an alternative to scheduling real device time as you use a simulator that has some physics based noise model of a real device. So, I can connect to this IBM q emulator through packets cascade extension. And I can then construct a noise model that's based on this real device. I think it should be a different one. All right. So this is connecting to the real time device. Sorry, this is an emulator that uses a noise model that's based on the parameters of the real place. So, takes a little to one this one. Yeah, I should say, if you're following along. I think you should be able to execute everything I've done so far, but to run experiments on real devices or use this noisy emulator, you'll need to configure your IBM credentials locally. I've linked to some documentation on that student. Okay, looks like that's finished. So here I've loaded in another phase estimation circuit this one might just be a bit bigger. Here I'm using five cubits to estimate the phase. So, if I look at the connectivity of this circuit, I have all possible cubits interacting with one another as before, like I showed in my slides. And if I look at the connectivity of the device that I'm targeting, I can see that I have this much sparser connectivity graph. And so this is, this is what IBM QG Carter. This is how the cubits are later in this sort of nearest neighbor to apology again. So, before I can run my face estimation circuit on this real device, I have to compile my circuit to match the constraints of the topology. So I can specify this by using this gets compiled circuit function and then just passing my circuit can specify an optimization level. So take it will optimize your circuits by default. But for illustration purposes, I turned it off here. We have 136 CX gates so you can see that compiling my circuit down into the native gate set has really increased my gate count. So I've now got this really, really big circuit here that is too big to get on the screen. So I probably want to reduce the size of this before I run it on the real devices that will be very noisy. So, if I look at the connectivity graph of my compiling circuit after a ticket has solved for the, for the constraints, then I will get, then I will get this sort of inter like nearest neighbor interaction between my cubits. So what ticket is done is it's inserted swap operations to exchange the information around between cubits so that all of my constraints are satisfied. Do people have a fair idea of what these graphs mean is that is that clear or do you want me to go over that again. Okay. So a question. Okay.  So, with phase estimation, this is just the detail of the algorithm that I won't cover that much, but the, if you like right answer in phase estimation is encoded in a single bit string. So here is the expected bit spring that encodes the correct answer that I'm looking for in my algorithm. And you can see all of these other contributions are just noise. So, all of these are introduced by the fact that the low level implementation of the circuit isn't accomplishing exactly what mathematically it's supposed to. But one thing I can do is I can specify a higher level of optimization. And then take it will work harder to try and give me short circuit which hopefully has less errors cumulative. So, you can see if I, I now have, I'm now done from over 130 gates to 52. Two cubic gates. So, this optimized version is much smaller than my original battery. So you can see I've got this much stronger signal for my correct answer. I can get my correct answer with higher probability. I should say that this is not a very realistic experiment. These, this is just a using a noisy simulator so this is just to illustrate that larger circuit tends to introduce more noise. Yes. Yes, the maximum optimization level is two, and that is the default. So, take it will form and if you use optimization level to take it will form a pre selected sequence of optimizations based on the specific device that you're targeting. Take it also allows you to use your own optimization methods which you write yourself so you can either use the default settings for the specific device or you can write your own optimization. So one thing that take it was designed to be able to do easily was to swap between different devices and simulators. So, you might seen already that there's a lot of quantum software out there and if you require specific software to run to run your circuits on real devices and lead to a kind of vendor lock and when you have to use all of IBM's tools to use IBM's devices or all of some other providers tools to use their devices. So, take it is taking like translate circuits to run on many different devices. So, it's supposed to be flexible and allow researchers to explore the different trade offs between different types of quantum hardware. Take it has this very generic sort of back end interface, which just represents a connection to a real device or simulator, so I can just swap out using like two or three lines of code, and then I'm just running the exact same circuit on a different device or a different simulator. So here I'm going to use one of Google's search sampling simulators. So this is just a bit different to the IBM simulators we've been using so far. And you can see that using the exact same code and just swapping out these two lines here, I can just run the same circuits I was doing before on a totally different simulator. So, this is the kind of thing that's designed to be fairly easy and take it. You can see that now my compiled circuit is in the different get set and that's because this simulator supports. This gets natively is far as it is as well as the CZ. Okay, so now I'm going to. So I've shown how to be like use the default compilation so the default settings for optimize new circuits but I'm going to talk very briefly about. How to like customize the optimization if you like. So, there's a lot, a lot more to say on this that wouldn't fit in this talk, but I'll show a brief example, so I can load in this circuit as it hasn't found this is a circuit which is relevant for chemistry so it's a chemical simulation of diatomic hydrogen. So I can load this circuit in here. So you can see it looks like this. And it's also quite large circuit as 150 gates in total, and 56 of these are these two qubit CX gates here. So, yeah, I've got these interesting sort of matter structures going on here. This is fairly generic optimization, you can do and take it is called full people optimize. This is an optimization method that's designed to improve the gate count of most circuits. So what this will do is essentially traverse your circuit and cancel any redundant gate operations but also try and essentially synthesize optimal some circuits within your circuit. So, I showed the unitary to queue box earlier, and this can generate a way to implement arbitrary to keep it operation. So this will essentially do that on different blocks of your circuit, and just apply some other very general optimizations which are supposed to help most cases. So I can import this from the private passes module, I then apply this as an in place transformation to this Jordan Wagner chemistry surface. And I can look at my outputs. So here. So you can see that now I've converted to tickets internal gates. And there's TK one CX gets it. You can see I've really improved my gate here so I was started at 150 with 56 to keep it gates. And now I'm down at 46 in total and 17 of these are to keep us. So I would still need to convert this away from the TK one gets it. Hopefully you can see that this is a very good equipment. Optimizing my sorry. Nothing you might want to do is define what's called a rebase pass. So a rebase pass is just a transformation of your circuit into a gate set which is supposed to be supported by a real device. IBM happens to use this set of gates here. So this early X gates, and this is X gates, this RZ rotation and this control of not the details of this are not that important, but I can use this auto rebase pass, and then pass in my gate set here as a parameter. I can apply that to my circuit. And then I forgot to draw the diagram. So if I draw. So if I draw my circuit now I see that I'm now in the, the IBM gates again after having optimized a circuit. I mean, there's a bunch of other circuit transformations you can do in, in ticket and you can sort of compose them together as you'd like so what you can do is you can construct a sequence pass which is a list of optimizations and then pass those in as a list so you can perform this full people optimize first, and this IBM rebase and then just apply it to my circuit, and then I should get the same circuit, but I could replace these passes with anything and they would rewrite my circuit in whatever way I would like. Yeah, so finally I'm going to talk about working with other quantum software libraries. So as I said, take it has a few like joint functionality with other popular tools like kiscuit, sir, Microsoft's Q shop. And this allows you to use tickets compilation features and conjunction with our tools. So if you want to do your machine learning and any lane or kiscuit and then convert to a ticket and use benefits of both libraries and you can do that fairly easily. So here, I can just import this one function here, take it to kiscuit, and this is just a way to convert it to be two different circuit formats. So if I take this qft circuit which I built earlier. I can convert to a kiscuit circuit manager and applying this function to it so I can then just pass this into my function, and then I've got a kiscuit circuit and there's also a function for going backwards as well so you can translate back and forward between these different software libraries, which is quite useful because yeah there's a lot of different software libraries out there. And so yeah you can do exactly the same thing with Google search for instance so there's an analogous function tk to search, which just takes a ticket circuit and converts it to a circuit, so I can just get my output in the same way by just passing my circuit into this function here. So yeah that's just about wraps up all I have to say for this section. Just as a summary I've tried to give you some idea of the motivation behind a ticket the problems it solves how to construct different circuits with the various primitives we have available running simulations on noiseless and noisy simulators. It's a game for targeting the real device, although we have ran anything on a real device today, and also to perform these different circuit optimizations as well as working along with different other ST case. So yeah just as a reminder you can install a ticket here like this, and we also have some useful life to the API documentation and the notebook examples and yeah you can visit our get help as well. So, yeah, if you want to interact with us and get help or make issues or a little press, then you're welcome. Yeah, that just about wraps up everything I have to say for now. Any questions. No. Yeah. I'm sorry I'm struggling to hear you speak up a little bit. Yeah. Yeah, so this just execute your circuit 1000 times and then measure some samples on each repetition and then from those from those simulations you can gather statistics about the different probabilities in your experiment. Does that answer your question. So you're, you're repeating your circuit 1000 times and collecting statistics because measurement in quantum mechanics is probabilistic so you want to repeat your circuit many times to get some kind of statistical confidence about what your result is supposed to be. So, yeah, the emulators are designed to mimic the real device as closely as possible so they have the same gates, same connectivity, everything's the same except you're running it on a PC or on a server rather than using real device time. But yeah it's supposed to mimic the real device so on a real device you would also repeat your circuit many times and try and get statistics about your, your measurement results. I'm sorry I'm struggling to hear people at the back. Oh yeah, of course yeah. Yeah so are you talking about these graphs here. Okay, and so yeah it's useful to start here. So here I've got this. Where's my circuit here. One second. So if I look at my circuit here I've got all of these two cubic gates which are interacting between cubits here do you see that. So, this is quite a big circuit, but I think you'll, I've got what this graph is supposed to represent is that I have two cubic gates acting between every pair of cubits in my circuit. So, this, this MP for cubits is interacting with this SP cubic here. And all of these cubits are talking to one another. So that is what is represented in this connectivity graph here. So this is what my, how my circuit is connected. And then I can contrast that with how my device is connected. So, this is how the cubits are laid out on the real IBM device. And on my circuit, I have all of my cubits interacting with one another. So I need to insert some swap operations into my circuit to make my circuit valid before I can run it on the real device. So I then compile my circuit. So that's all of my gates are just assigned to specific nodes of the device and I only have nearest neighbor interaction. And then I can see that now my, the graph of my cubits is now nearest neighbor only. So I don't have any more, all of these cubits interacting together. Does that make sense. Okay. So, yeah maybe someone else in the room can answer this question better but yeah we have products that extract uses quantity real quantity which is to generate, generate verifiable randomness, but yeah I don't work in that project. So perhaps Mark or someone else wants to answer. Anyone else got any questions before I wrap up for a while. Yeah, the background. It's different depending on different hardware platforms so on superconducting devices the cubits are fixed nodes in place. So you have to use swap gates to exchange the quantum information around between the cubits. You also need to translate into the native gate set of IBM for instance. So this is different with say trapped times because you can physically shuffle the irons rounds into different gate zones. So, yeah, with iron traps, you the sort of swapping happens at a lower level than the circuit based level. So if you, if you're trying to map a circuit to a real device architecture where you're fixed nodes, you will need to add some swap gates, and also convert to the supported get set with the device. Does that make sense. Yeah. They are directed. Oh, sorry, I'm, I'm confusing two things. Yes, these, these graphs here are undirected. I'm confusing another thing. Yeah. Yeah. How does this machine. So, even though you see circuits like this in the standard sort of gate based model internally ticket stores that as I directed a cyclic graph. And then we have optimization passes which are like rewrites to that graph. So, full people optimized which I showed for instance is just traversing the graph and making local optimizations on the graph. I'm not sure about answers to your question. How does this transformation. Okay, so a high level and ticket splits the routine process up into several stages. So first, it'll try and find an optimal assignment of logical to physical cubits on a device. So if you have the cubits in your circuit, you'll have to be some mapping from those cubits to the physical nodes of the architecture. So this is called a cubit placement. So after the placement is done, a ticket will perform another step where it traverses the circuit, trying to satisfy the connectivity with the minimum number of swaps, once the placement is decided on. So, yeah, those are two separate quite complex problems which ticket has to solve in order to do this. So I think finding the placement is equivalent to a variant of sub graph isomorphism, and then there's, which is a well known NP complete problem. And there's also the process of minimizing the number of spots is equivalent to I think token swapping. So another challenging comment or a problem. Is there a break scheduled or should I keep going into my next. So it's been about an hour since I started take a break. Yeah, you can take a break. 10 minutes. Thank you. Yeah, that'll be totally fine. Yeah, like, um, my section on Grover's I would have this to show it. This one. Then stop recording. Oh, yeah. I was like, I hope we get a pre 30. Yeah, so. I think I think. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. You can actually do multi-controlled zeds with non-fully connected qubits, but you just have to first decompose your multi-controlled zed into single and two qubit gates and then insert swaps from there to sort of exchange the effect. I can maybe show you the compiled circuit, can I? Oh, compiled sort of always happens with live demos. Yeah, so maybe this isn't that informative, but basically all of these, all of these multi-controlled zeds can be broken down into two qubit gates. So then I can just use my usual routine procedure to map this circuit to an architecture of my choice. Yeah, so underneath, so this is this is like what's actually running on the simulator, right? So this is the circuit that I am sending to my simulator to be processed and then it produces this plot. I just didn't show this diagram before. Oh, the connectivity graph. Yeah, I think so. I know for this case that I haven't, I haven't passed a noise model. This is just an ideal simulator. So this specific simulator doesn't have connectivity, but I could use another simulator that did. So if I show you the connectivity graph, none of these optimizations are done with connectivity in mind. But if you replace this air backend, if you either give it a noise model with some graph implicit in the noise model or a more realistic simulator, then you will see some nearest neighbor only. Thanks. Okay. Still got a couple of minutes. I'm happy to wrap up there though. There's no more questions. Okay. Thanks for your attention. I hope you got something of this and I think your next lecture is on ad battle algorithms. So enjoy. Thank you. Yeah. Hi, do you all hear me. So there is a small change of plan. So what we're going to do is instead of taking the shuttle slightly later for the recession, we're going to take the shuttles now to go back up. The last lecture will be again at the blackboard. Okay. And from there, they will be the welcome reception on the main terrace of ICT. Okay.  If you want to walk your welcome but otherwise just wait for there. I'll bring you up and then the course will start in half an hour or something like this. Okay. In the same room as this morning. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay. Okay.


In this video, we're going to explain how to create AVR assembly programs. The initial ingredient is to write our code. Let's suppose we write our code in something called file1.s in a file that has to have a format which we call plain text. So you need a plain text editor to edit the file and include your code there. Typically, an assembly program will be written across several of these files. Let's say it's file1, but also file2.s, all of them with extension.s to denote that is assembly code, all the way to perhaps filen.s. So suppose you have written your code in a set of files like this one. Remember all of them with plain text. Typically, what you use, the type of tool you use to write these files is called an IDE or Integrated Development Environment which is the typical tool that allows you to edit, compile, and do some other operations over the program. The next step is to take all these files and process them all together by a tool which is called the assembler. Or an alternative name, generic, is the compiler. This program basically what it does is it reads each and every one of these files and performs a translation process. This translation, if everything is correct, then it will end up producing what we call an executable file. That despite the name executable, it still is not exactly ready to be executed by our AVR architecture. And as I said before, this is if everything goes correctly. However, if there is any sort of error detected in this translation and by error what I mean is something that was improperly written in any of these files then this compiler will return back to you with a message and typically what happens is that you need to go back to these files, find the error, and attempt the translation again. So invoke the assembler again. Typically, this assembler can be invoked either through something called the command line interface which is just a window in which we can type a bunch of commands or sometimes the IDE itself allows a very easy way to invoke this translation process typically by a menu option or a button. In this command line interface, typically what happens is that you provide options that instruct the assembler to perform the translation following certain specific values like, for example, you specify the type of CPU you want the code translated to or other a bit more obscure parameters like the memory management unit or what kind of output file you want, etc. So think of this assembler or translator as a very versatile program that can do lots of things and the way you specify which ones to do are through these options that are included in the command you type in the command line interface or CLI. Now, if the program has been translated correctly as I said before, it's not quite ready to be executable by the Arduino board. There are two additional steps. First, there needs to be another translation step but this one produces another file which is in binary format as well and it's also executable. This is just to perform a necessary translation from one executable format to the other. This one is closer to the board and can be almost immediately uploaded and at the same time run in the board. So, as you can see from the initial file to the Arduino board executing your program or the AVR chip executing your program, you still have a few steps. First, an initial state of translation in which we detect a few errors, then we produce an executable file. That executable file needs to be translated again to specific binary executable format and then finally we need another program which will push that executable program all the way to the board typically through the USB cable and as soon as the program is installed on the board it starts executing immediately. Now, let's take a look at the structure of a assembly program. Typically, an assembly program which again is created in this plain text file has two sections. The first section is denoted by a line that says .section.data. So, whenever the assembly, the assembler here perform the translation, find this line, we are instructing the assembler to take whatever comes next as data definition. So, what we're doing here is telling the assembler what kind of data are we going to be manipulating with our assembly program. Whenever the assembler finds the line saying .section.text, what we're saying is that the following text in this file will contain the code and typically what happens is we finish the file with one line that says .n. Now, all these three lines is what we call directives. The reason why we call them directives is because these lines are not specifically instructions that are going to be executed by the board here but instead instructions that are going to be interpreted by the assembler. The assembler is going to do different things whenever any of these three things are found. Now, let's look a little bit more into detail what do we mean by data. The data section is typically used to define the type of data structures that are going to be manipulated by the program. An example would be the following line. Let's say we say my msgcolon.s-a-s-c-i-z my first program .n. And here what we have is a line with three elements. The first one followed by the column is what we call a label. And a label is to identify and refer to the data that we are declaring here. Another way of looking at this the purpose of the data section is to define data that is going to eventually end up in memory. Well, this label will allow us to refer to the address where this data is eventually being stored. The second word we find here, it's a directive. And as in the case of these three directives over here, it doesn't translate into anything explicitly that is going to be executed by the microprocessor, instead it's a message telling the assembler that what it comes next is a string which is going to be defined using the ASCII code. And not only that, but it's going to have a zero stored at the end in memory. And finally, as you can see here we have the data. So another way of looking at this is that you have three elements. This label is telling you where is the data going to be stored. This directive is telling you how is the data going to be stored. In this case is going to be a string. And finally, what is it that we are storing? And eventually, as we said before, this data ends up in memory. Now, let's look at the code section which is the second section we have here. Remember, after the assembly, assembler detects this line over here. And typically the structure of this section is, first, some sort of label again, same structure of label we have here, we also have it here, denoting the start of the program. In principle, the start of the program, by convention, it's a label that we write with the name main, and typically is preceded by another directive that makes this symbol global. So this directive over here must be written before this label main. And the purpose of this directive is to make the symbol main accessible. In other words, so that from outside of this program, somebody can call this routine with name main. After this label, we typically write instructions. Let's say, for example, we start with push R24 and push R27. A few more instructions. These instructions may have labels here, like, for example, begin, colon, and colon. More instructions. Maybe then we have pop R27 pop R24. And finally instruction ret. So this is a typical instruction of the, sorry, a typical structure of the instructions in the code. Sometimes we start with the push instructions because what we're doing here is saving temporary values. Think of the stack as something in which we put some temporary values that we don't want to forget about. And these two instructions over here are restoring those temporary values. So typically, what we do is the first instructions in the program are to preserve certain values of certain registers. And the last instructions of the program are to restore those values from the stack. And as you can see, the order in which we save and restore these objects is symmetric. First, we take register 24 and 27. So we put it on top of the stack. The stack will then look like this. Here is R 24 on top of that R 27 and the stack pointer would point here. And then at the end, what we do is exactly the opposite with pop R 27. So the value stored in the stack would be loaded into R 27. These value R 24 would be loaded into R 24. And then we finish the execution of the program restoring the initial value of these registers. So this is a policy that needs to be observed by the code. And this is the structure of a generic AVR assembly program.


If you have a green bin, put it in there and the council will dispose of it. Please don't compost that fruit at home. We know that home compost heaps don't get up to the temperature we need to kill fruit fly. If you don't have a green bin service, check the Fruit Fly website and there will be options there for you.