Welcome to another edition of RCE. Again, this is Brock Palin. You can find us online at rce-cast.com You can find an RSS feed and a link to subscribe and iTunes and all the old shows on there I think some of the podcatchers on the show a couple back all of the old shows all 70 plus of them are available online there Also, I have here Jeff Squires from Cisco Systems and one of the authors of open MPI Jeff Hey, Brock sounds like we're getting close to 100. We're only 20 some away, right? Yeah. Yeah We're getting there amazing that we've been doing this that long. I didn't even realize that Well, we have lots of good stuff to talk about in the future, but today We have a cast from Purdue. We actually have two Purdue people and in a row on here We have Gerhard Klemick From Purdue and he's gonna talk to us about hub zero and nano hub So Gerhard why don't you take a moment to introduce yourself? Okay, so you heard my name Gerhard Klemick. I'm a professor of electrical engineering at Purdue I'm also director of the network for computational nanotechnology, which Created nano hub and operates nano hub as a national infrastructure and We also spun out hub zero to enable other folks to to spin out their own hubs and Disseminate simulation technology to other audiences So hub zero is like the base package and Nano hub like okay, so what is hub zero? So hub zero you can think of it as a portal infrastructure if you like the word portal or a science gateway infrastructure if you like it that way The goal is to enable researchers Or other folks that might have simulation tools To enable them to disseminate these tools to a much broader audience sort of like cloud computing Where the end users really don't have to install anything, but it's It's really like a cloud computing environment. That's end-to-end from a user's perspective and it's powered by Research tools that come fresh out of research. So it's it's geared towards More rapidly disseminating knowledge and access to simulation tools So what's the relationship then between hub zero and nano hub because I think you said in the beginning that nano hub came first, right? right, so The relationship is such that we we basically as we Developed nano nano hub and developed its infrastructure We realized this is really powerful and can help many other fields of science and we we sort of spun out in a sense the the software stack the metalware that Is sort of the framework that holds simulation tools it holds the collaboration environments it holds the user support aspects But it's it's basically an empty hub. So hub zero is the the infrastructure which is open source you can download it from hub zero dot org and Install it yourself and you can spin out your own hub and then you have to fill it in fill it with content So as such over the years we we created an infrastructure group at Purdue that's now focused on Hub zero development and deployment and nano hub is kind of like the the granddaddy of it and in a In a business sense, it's the biggest customer or partner to the hub zero development team So just curious. What's the software license of hub zero? Boy, it's it is truly open source it basically embeds the lamps Web star stack, and I think it is LGPL or it's BSD I don't remember which one of the the two it is but it's of that flavor so take it use it and You can put in your own material and you don't have to commit the changes Or make your own source publicly available So so it's of that open source flavor Is that I'd have to look it up. I'm sorry So there's lots of different Portal systems out there and such and a lot of places get by with things just like you know Media wiki installs for sharing information back and forth What's some of the unique things about hub zero and maybe some of the things you've done on nano hub? That you really think is kind of like You know this is unique for our our our industry So what I would say is that Most science gateways or portals Are a little bit like what you have or expect out of a what you get at your bank, right? You you log in on a remote portal you fill in out some some little tags you push Run or get me the query and you get some data back and in general it's it's more or less data in a raw form. That's not very much graphically Represented typically if it's graphics, it's like gift images or something Either way it would be hard to really truly interact with this data that comes out of this query or comes out of that That simulation of that computer program So what's what's really unique is that we basically run a full-fledged simulation tool or tool sets Real graphical user interfaces in a that were developed in a UNIX type framework And we pipe that into the user's browser via VNC type technology, so it's truly interactive tools They run as if they were running on your local machine, but they're remote And the user doesn't have to install anything and doesn't have to put into place the connectivity to grids, etc So it's the interactivity That that's I think unique So you said you said something very interesting there though So when I was doing a little research before this and I was playing with some of the simulations on Nano hub, I just kind of assumed they were JavaScript-y kinds of things But you said they're more like VNC kinds of things So are they running back on your back-end servers and you're doing a VNC like view in my browser? That's exactly it. So so basically you have a VNC view into a virtual UX machine that runs an X11 type environment and We can host any X11 Linux based tool in this environment and The front end might run in this virtual machine also the the computation if it's lightweight enough might run in that virtual machine Or it might get dispatched into some bigger machine Pending the required resources or depending on the quiet required resources So it looks like a thin Or like a Java applet in a sense and the only thing that's Java about it right now is it's the VNC Clients that runs on your machine the rest really runs on the back-end and And possibly on a even further remote back-end on a parallel computer If if some some codes require some 200 cores on on 3-4 hours or some of the simulation tools run in seconds, so And I think that that's the unique piece And the origin really of these tools is the unique piece Interesting can you give us some specific examples of simulations and tools that people can use sure so One of the earlier ones was a tool called nanowire very creative name, right? You can imagine that it models a nanowire or electron flow through very small wires and that was a PhD thesis work that In typical academic fashion would of course be getting very dusty Virtually on some some DVD backup system or some tape backup system and nobody would be able to use it We have developed a technology called rapture that Allows us to put user interfaces on top of these tools really rapidly within a few weeks and then deploy this research code to a broader community So so there's two novel aspects to that number one It's codes that normally would be condemned to nothingness and we put a second life on them To the user interfaces are rather friendly. You don't have to read a 200 page manual before you can operate this tool So so that's would be one tool There's another tool maybe We have a donation from former Bell Labs That where we can host their device simulation tool how they designed their their semiconductor chips and You can run the tool raw Meaning with a garbled igook in input language. That's hard to use or you can have a Sort of derived versions that have very easy to use interfaces So if these tools that can then be used in classes that teach maybe peon junctions or MOSFET Transistors and things of that nature. So suddenly these tools that were condemned to expert use become Rapidly being used in classrooms and by experimental researchers that normally wouldn't touch it Now a follow-up question one of the things you said earlier that you know some old dusty academic code or something might have been Condemned to death But now you're giving a new life in inside of a virtual machine Does that mean you're you have a couple of different types of virtual machines? Perhaps one with older operating systems that were required for some of these codes We actually don't do that right now pretty much all our virtual machines and all the codes we have our Reasonably portable. We haven't found one that that will not port to the next version up We had one tool where we played around with that for a while But then also these these older virtual machines have issues on security too, so you have to be careful there as well, right? but So as of now, I think it's pretty much a homogeneous Virtual machine back end but in principle it could be managed tool by tool So so that that is conceptually there but in practice. I don't think we do it But we run some some of them are windows some of them are Linux so So in that sense, we have at least two flavors So how hard is it to set this thing up? You're talking about virtual machines and making user interfaces for tools and You know a VNC viewers and having the whole lamp stack up Like what's the process? So so there's there's two aspects to that, right? Let me from the From the let me take the second step first because that's what the more typical one is Let's assume you had a hub up and running somebody set it up for you we tend to create user interfaces and tools and pairs of graduate student undergraduate student faculty member and And that takes some Maybe for a summer undergraduate students We make those projects over a month and a half or so They learn this rapture toolkit and they they learn the science of the tool and by the end of the summer They they actually have a tool up and running that after a while can literally be used by thousands of people and That assumes knowledge of rapture a little bit of Unix knowledge And off we go. So it's basically a Unix machine running in your browser and that's how they develop now How to set up that whole framework? Out of box is not necessarily simple we distribute hub zero as a Overall virtual machine so you can install this whole thing as a As a virtual machine, but to install it for real a real infrastructure. You probably need a At least a 1u unit that has some 8 or 16 cores some some hefty memory You have to know about virtual machines, etc. And There's quite a bit of documentation that go goes along with hub zero, but still I think you sort of have to have Some serious Unix and server knowledge to to really set it up So it's it's not necessarily a thing you just sort of do in an afternoon and just for the heck of it So you kind of have to be dedicated to want to do that the alternative is We have a couple of Institutions that actually run their own hubs now Another model that we have done here at Purdue is This this hub zero development group hosts hubs for entities For Purdue entities and also for external entities under sort of a subcontract That has happened. So those are the The two miles we have in a sense we we hosted Or you can download the source and and go at it and those are the the two modes that are actively being pursued Hosting like that. It's really quite neat and the Turn around time to have a student understand and write an entire user interface for scientific application and only a month is Really impressive to you can have that going that fast Yeah, I actually really like it. So it's pretty cool. I mean, it's There's 235 tools or so on Nanohub Again, we allow anybody to have any interface like qt or even my lab interfaces or whatever I think about 220 or so use rapture And we don't indoctrinate it into people that I must do it, but it is pretty easy But what about for power users, I mean Graphic user interfaces and stuff is what we've been talking about What if I need to do like gigantic sweep or you know the kind of standard HPC user of the old cloth you could say All right, so what what we offer to the developers typically not to the end users is Basically an application we call workspace and that workspace is an instance of Linux workstation that again runs your browser and it has the whole software stack of Nanohub or hub zero installed So it has also the whole grid computing Capability in the in the back end installed So let's say you have code like that's big one lamps like a molecular dynamics code Which we also have in Nanohub and we have I believe some Some instances also installed of lamps on high-end computing systems. So you could in principle Compose your input deck to lamps on this workspace and then use our submit infrastructure to submit your input deck With lamps to some compute resources. So it's a it's a front-end to grid computing even for the geek What what all these keywords are that I just mentioned Where could you give us a little more detail on on rapture, you know, how would I go about making my own tool? Do I need to link in certain things or do I just write any old GUI and it fits in afterwards or give us some examples of that So all this info can actually be be found on rapture.org. That's with two P's are a PP Ture.org it relinks to some page on Nanohub that explains it in some detail and there's videos and podcasts on that as well but but the gist of it is basically that You describe your input and output through an XML descriptor base and From the input description in this XML it renders a GUI We also have a little bit of a GUI builder that dumps out the Framework of the XML file for you. So you don't have to do too many XML push-ups Now there's two ways to interface that GUI to your code the Probably the most prevalent one is that people are in love with their input language and their output files as Much as a mother is in love with their child And and what they need what they typically do is they write small scripted translators either in Python or Matlab or Perl or tickle To this XML base rapture description and there's API is in rapture to any of those scripting languages So see your C++ and Fortran where you can write those little translators and So you translate the The wrap input into your say couple the gook input deck or maybe extremely well structured input there for all that matter You're the script and executes your code you get some output files and Then you have this script to transform these output files into the XML based file that rapture likes to a data object that rapture likes to get then Then it's all framed right Then basically you have a workflow your script is a workflow It does the GUI generation the Translation the execution of a code or multiple codes if there's a sequence and then the processing of the output That's the typical way so it's sort of like a wrapper around the science code you date You may not want to touch But there's some scientists that also said well, I actually I conjured up this input deck I really don't like it all that much like rapture as a as an IO handler and a database handler and I throw out my own IO and I just adopt in my C Fortran or Matlab code. I adopt is the rapture IO as a library and then you don't have to write all these scripts anymore these translation scripts So there's two two ways to go about it So I want to shift a little bit here We've been talking a lot about this submitting jobs to you know back end infrastructure using these you know nice easy to build GUI interfaces and such which is kind of unique thing to The nano hub hub zero kind of setup. What are some of the other things you can do on this thing? I mean, does I have all the traditional features of what would call a portal places for storing documentation? collaboration across units departments colleges what yeah, so so The in the web infrastructure we have a lot of these items that you just listed so we have For the tools most specifically we have like question and answer for we have wish lists Where people say this is a cool tool, but I wish I would do it this thing The next big thing so there's exchange of ideas and developers can jump on it or people can join the development team Then there is a group mechanisms where some people Aggregate information into groups and these groups could be open They could be by invitation only or they could be completely hidden So they can't be discovered These groups and and these tool pages are basically wiki type pages. They follow a wiki format so they can be easily edited and Some professors now have their own group pages even their home pages on nano hub because there's a lot of exposure to some 200,000 users that Roll by on nano hub each year So so they see that as an opportunity and as an easy way to edit their own group pages on nano hub So so these collaborative tools are there There's no chat for example. There's no video chat and in a sense, I feel there's a Whole lot more that can be done, but we also then play catch up with standard other environments that like Google for example has wonderful collaboration environments so But it's very clear that users need it and they would like to have it in one place and then So which we strive to achieve some of that So how do people typically use the hub zero infrastructure? I mean, how do they Organize their their information is it is a do you typically see a lot of wiki use or or documents that are uploaded or simulation, I mean, how do they I'm not even phrasing the question well because it's it's so open-ended like just how do typical people typically use These hubs to actually collaborate. What information do they share? right, so So you're asking about the people that share which is in general quite a small Amount of people compared to the ones that use So so we have some 3000 content items or more on nano some 230 tools so the tools are I Mean distinct publications in a sense. They have digital object identifiers. They have authors They stem out of a collaboration team Then by far the larger number of content items are Seminars and lectures or lectures in a classroom We have some I think by now 55 or 60 Complete classes and nano technology that are videotaped and Processed so with PowerPoint slides voiced over etc That constitute content, there's some 800 authors now in total on Nanohub 3000 plus content items So that's typical ways of It's a publication venue if you wish to look at that at it Then some teachers put together their course wikis where they basically say well In the first week we do this These exercises and please run this tool and Etc. So they they almost build a syllabus in Nanohub We did some of that For them where we created something like a tool-powered curricula. So it's a one-stop shop for faculty members and students to come to a particular Say class first teaching semiconductor devices or for teaching quantum mechanics for engineers So these are sort of aggregates and then these Faculty members and students can buy into the aggregate so to speak of course. It's free So they don't really buy it's a figurative buy So I think those I would say Biggest gain we stand right now to see is more people contributing more of the day-to-day Usage components like the the files they might distribute to their students with their course layout or the homework assignments etc. So That we don't see a whole lot. We see it a little bit this this use for Nanohub or hub zero as a tool for education Was this something that was expected from day one when you first built the collaboration environment? Yeah, we have I mean it stemmed out of research. So anecdotally It was geared towards Sharing a research tool with another research group and Enabling to use the tool without having to reinstall it or as a matter of fact to rewrite it on a PC because most Experimentalists were on PCs and And didn't run Unix type tools. So so it stemmed out of research, but really early on Then people realized oh, I know I have small tools or bigger tools or even circuit simulation tools that My students wouldn't have to install my system admin doesn't have to install And so let's use them in the classroom and I don't have to in I can just go in the classroom and launch it and Demo it in the class and show people how to access it. So so the use in in Informal education has been very evident early on and I have kind of cool data to show now where I can Really show that use and research and use in classroom Overlap that you can't necessarily say a priori This is going to be a research tool or this only a classroom tool they overlap and I can show Quantitatively how these tools are used in the classroom and they're being cited in the scientific literature So the separation classroom versus research is really not not a good one So this sounds like a tremendous service particularly since it's free and if I am you know a given professor out there I can just latch on to all this material that that's there How do you do this for free because I mean the the people and the equipment and the Bandwidth alone has got to be relatively expensive or at least it's not free. You know, how do you how do you provide this for free? right so so the cute answer to that is it's free for the users it's not Not free to me as the as the director or the The organization that hosts it and actually the funding agency that funds it So the agency that funds it. It's the National Science Foundation that provides Very good grants to Purdue and its affiliated universities that operate none of up and fill it with content And It's not free to me because I have to continually prove that this infrastructure that we're building is actually useful and is being worked used by people so we do a lot of studies to show that it's Impactful and how it's impacting research and education, etc. That's why I know these assessment numbers, etc So we are now in your 10 over 10 year grant last October there was a call for proposals to Reconfigure the NCN and nano hub. We handed in a big proposal in January This whole thing is under review There will be new content providers as well that is also under review by NSF and I'm quite hopeful That nano hub as some 200,000 users use it every year Will continue in some shape or form for another five plus five so ten years based on Some organization that will win this grant and there will be continuity So so I'm quite hopeful that that will be the case So how do you gate things? you know like The amount of consume computation on the back end for these different works I mean mentioned lamps lamps can consume a lot of CPU depending on what kind of simulation someone was trying to do And then how do you gate like adding new tools to the public toolbox? You have over 300 now How do you keep that from exploding into 13 copies of the same thing? Well, I mean there's a couple of questions you have in there, right? One is a matter of how can you possibly think of providing enough resources in terms of compute cycles? And there's two aspects of that. That's the front end running the visual front ends and GPUs that do some of visualization and then the back end that provides the cycles So the high-end compute cycles we distribute are part of another NSF allocation on Ter grid or exceed as it's called now So we can dispatch jobs into that queue or queuing system and We haven't really pushed very much the very high-end jobs either Mostly because We want to make sure this whole grid infrastructure is actually working and working reliably, etc And there were some Technical difficulties to overcome and we feel more and more comfortable that we have overcome them or can monitor them So so far we haven't run out of cycles So that that's that's one aspect of cycle provisioning the second one you mentioned is sort of to quality control slash duplication control and In a sense what we offer is a you can think of it as a tool publication venue, right? Where people feel that their tool Should be on nano hub or they want to enable it and We now have people installing tools on nano hub or That are not directly affiliated with us meaning they have other NSF programs They see benefit in disseminating their tools and these tools that are created outside of The core unit of NC and a nano hub are now also being used by yet a fourth Say party for research. So we're starting to be a Like a dissemination venue for for other folks We're an infrastructure in terms of the suppliers and the users, which is a kind of a cool thing In that we're actually kind of unregulated. I mean the thing that we demand from These tool developers are all right. Give us a paper a scientifically peer-reviewed paper If it's a completely new tool or give us a decent reference of what the model is that is in this tool please try to provide a first-time user guide to the tool and And stand by your tool if there are questions on the science components So those are the requirements we have towards tool developers and yes, we actually have some Tools that are sounding similar. They are running similar models, but you'll find that No, there's different brands of cars, right? I mean they all have four wheels and a steering wheel and a handbrake and all that stuff but some people like one over the other and I think that's a fair thing and it's a good thing and then you can do performance metrics of one tool versus the next and And people have their personal preferences and they have their belief system or what's the better model? So we open that for people to to utilize that So how many? Hubs does Purdue itself host you mentioned that you guys do a lot of hosting You know internally and externally do you have any numbers on on how many you guys host? It's I mean the exact numbers are I think on hub zero dot org But if I think we have a total of 40 hubs and I think 12 or so are running outside I'd have to go on the web and look right now, but those are the ballpark numbers. So the majority we host For Purdue entities or on behalf of other entities Now is You know hub the biggest of those would you say? I mean that's kind of a subjective question But well, it's certainly the biggest one in terms of number of users and Called market penetration and global use There are the hubs like global hub, which is a collaborative engineering hub That has large numbers of users in the tens of thousands There's another very large hub project, which is called knees hub. It's the National earthquake engineering infrastructure That is also NSF funded. It's a very large project and they use hubs to share Data of simulation data of physical experiments and also simulation tools that model these experiments. So So that's another very large project Those are the two major very large projects and then there's lots of smaller projects that utilize hubs Do you have any kind of statistics on how many people outside of Purdue are hosting their own hubs? Yes, so my gut fee What I have in the back of my head is 12 or so 12 fully operational outside hubs That are hosted not at Purdue So there's all these hubs out there and other people using them What are some of the strange uses you've seen of hub zero? The strange uses Yeah, something like it wasn't originally you never envisioned it being used for us. Oh, I see hmm, I What I didn't expect to see I mean, I expected it to be used for research and for education What I what really surprises me is that? how rapidly these former research tools migrate into the classroom so we we we analyze usage patterns of these tools and Do user user correlations and that's how we know When there's a cohort of people all showing up on Tuesday all using the same tool and roughly coming from the same IP pool We know a hot day. These guys are doing a homework assignment, right or a project assignment And and that's unique say to a certain tool We can and that might happen in many classes But we can measure the time between the tool publication when when when it showed up on the classroom in the On Nanohub and the time It shows up for the first time in a classroom, which is sort of an adoption rate in a sense, right or use first time use Analysis and I mean in a sense you can think of these Tools as new textbooks right or parts of textbooks and the typical textbook takes some four years or so to to write So we have tools that show up within weeks in the classroom. So once they've once they're published They show literally up a couple of tools show up within a week Some of them like less than a month the on average sorry and the medium time is less than six months and You might say well these weak adopters like they take a week to adopt is probably the faculty member itself Creating a tool for their class. That's true, but we also have We can prove now that there's outside adoption and that starts about like within a month People that didn't create a tool adopt a tool for their own class So that that is so fast compared to Four years of writing a textbook or something That was quite shocking to me that that was really surprising. I would have thought it's a year or something But it's literally weeks to a few months, and that's kind of cool. That that was really surprising to me I Think that that would be the sort of the odd one I would say So as a software developer myself, I'm always curious as to people who are writing other software I have two questions that I like to ask them just for pure curiosity's sake. Number one. What language? Did you guys write most of? Hub zero in and number two what type of version control system do you use for your code base and why? Okay, so so the standard front end Is this lamps business, right? So Linux Apache my sequel PHP Forget what the s is so so basically the the front end is PHP in close adoption to some jumlah Content management system that we then extended out quite a bit So so that's the web front end Then the the middleware that manages virtual machines and Grants access and all that that's primarily written in Python and Sorry, what was the other question? Oh the revision control system. Yes. Yeah So so so far we've been using SVN and we're moving towards get Not get seems to be more General for us for multiple People working on projects with multiple permissions and that seems to be what I remember is what Michael McLean and our software architect and sort of software genius of hub zero Identified, but I'm not quite sure what the detailed differences between SVN and git So what are some of the things coming for the future for hub zero you mentioned you have a new proposal in what kind of Features and stuff. Do you want to see happen? Hey, cool question that I think professors always like to talk about what they do in the future, right? So so Yes, there's some cool things we envision doing that is We have now over 850 Citations in the literature that site nano-hub usage many of which sort of show Nano-hub simulations that they have run and then maybe compared to experiments wouldn't be cool if you actually read this in an Interactive journal say on your iPad and you read this paper and you click on the graph and it goes back to the the tool on nano-hub that ran this Right, so so that would make Scientific results really duplicatable in a sense and you can maybe then if you there is enough compared to your own simulations You can actually get the numerical data off. You don't have to scan the graph and try to guess data off of this graph So we want to embrace the the data storage of these simulation results and engage publishers on scientific communities like Institute of physics and IEEE and And springer we have actually agreements with that we will have special issues where we will push these interactive journals Host the results and then also start to manage some of the experimental data That is out there to to compare that To simulation results. So it's really All about everybody talks about big data There's lots of small data to be handled and so we think we have a way to to create user interfaces for this data browsing quite rapidly and then allow people to To foster this This notion that a good data set is like a publication, right? It's it maybe just as valuable or even more valuable than the paper that described it So other people can utilize it. So so that's one of the the new aspects of What what we're up to in in nano hub and hub zero To to to make interactive journals and to make scientific results reproducible So what's some of the contact information for hub zero where people can find it download it and nano hub? Also, so that's that's pretty easy hub zero That or g so h u b zero Z e z e r o dot or g. That's the the framework in a sense and you find all kinds of information on hub zero there how many other hubs are running there. There's links to all the other hubs and Nano hub is now an a and a and o and then hub h u b dot or g and You can find contact information on there and I guess my name is Gerhard Clemac and my email is gecko G-e-k-c-o at Purdue that edu so you can send me email if you have questions as well That would be very welcomed Okay, thank you again, dr. Clemac You're very welcome. Thanks again. This was great. All right wonderful


Hello, I'm John Day. I work at the Fred Hutch and support scientific computing there. It's kind of new in America, land acknowledgement. The Fred Hutch acknowledges that the land that the center is on belongs to the Salish peoples, and the waters that touch that belong to the tribes of the Duwamish, Tualips, Suquamish, Tualip and Muckleshoot nations. We've been using EasyBuild since about 2015, and it's really influenced how we design our computer now, and we've made a decision several years ago that everything will be deployed with Elmod and build with EasyBuild. Of course, there's some exceptions. Move this out of my way. We're a cancer research center, and recently in the last year we've changed, we've merged with a clinic, so we've dropped the word research out of our name. So, but we do have patients now on site. We do sequencing. We have 300 principal investigators and I guess that's a term used in Canada and the US, so a PI is somebody who has runs a grant. And some of these PIs are just individuals. Some of them have staffs of 50 to 100 people. We also have a lot of graduate students. We also have a lot of postdocs on campus. Fred Hutch is home to three Nobel laureates. And the Hutch has been the home of Gattlemen was at the Hutch for eight years. Also, bioconductors started there. So there's a big legacy at the Hutch of using R. I'm just throwing this up there. It's just kind of a demonstration of some of the scientific work that's done. Trevor Bedford, this is a complete map of phylogenic tree map of COVID-19. And this data is also geolocated. So you can zoom in around the world to see where it is. And this is an interactive graphic that's on our website. So you can zoom in and get incredible detail down to the individual samples or it's just a fun slide. I like to put it on there. And again, we're actually developing cancer cures at the Fred Hutch. And this is just again, I just love this graphic. So it's a T cells attacking cancer cell. After listening to all these amazing supercomputers at the conference, I'm never going to use the word HPC again. I'm going to just call it scientific computing of bioinformatics is very little to do with HPC. And again, when we deployed our new cluster, you know, easy build into software stack became so important that now we deploy our nodes to just the absolute bare minimum. It's just truly an Ubuntu that just write all the box, hardly anything's added to it. There's no dev packages. If you type make it says command not found. It's just a core that for running jobs. So everyone needs to load their software at the start of their job. And there's no sensors, no development tools. And we rarely get complaints about this people don't develop software like GCC like you would see at other supercomputing sites. And rarely when that comes up we just save module load false, and then they have all the tools they need. Some of the trends we're seeing is increased GPU usage. Three years ago we had no GPUs and now we have one GPU per node, and it's creating some interesting problems in the sense of you. If you start 100 or so jobs that require GPUs, your job runs on every single node, since there's only one per node. And the other problem we're seeing is we bought consumer grade GPUs just to just try it out put them out there. Maybe people will start to use them and they have with eight gigs it's not sufficient to build models so we do have some PIs have gone out and bought the a 100s and fully maxed out on memory. And models requires lots of memories what we're learning. We don't see too much case of just people using them in general computational sensors. PyTorch is probably one of our big and of course alpha fold is one of our new applications that people are very interested in. And of course the request for modules just continues to grow. When I started at the hutch we might have gotten one request once or twice a month. Now there's several a week and it's really daunting. And the quality of bioinformatics software I just hate to say this on a recording but it's really terrible. There's something I like to do I've started using elastic search and splunk many years ago, and I'm certain everyone does this with their site package Lua. But I like to do the key value and some of the other things that we monitor I, I try to actually obey completely like JSON rules. And the other thing I like to do is pick up and I've got this off the web somewhere but the job ID so if you're running a cluster job. It's in your environment you can pick that up with Lua with lmod and actually inject that straight into elastic search. So if someone has a ticket and they're saying my job doesn't run. It's often difficult to ask them what they're doing and we can just go into splunk type of query and we can see everything that they've loaded. We can associate all of those packages with the job so it helps us out a lot and debugging and working with users. And you can see so again, since I have all this stuff streamed into elastic search. I can get amazing metrics out of who's using what down to individuals and you can see that we're very heavy on our F HR spread HR and I'll talk about that in a minute our studio is certainly growing. And then things like BCF tools I think that number so high because it's being run out of our laboratory so there's just processes that people are running from instruments that stream into our cluster. So every time a laboratory process runs these things get run and the R usages really high also because you know people will use just a single functions are just they'll just use it to grab a column of data out of something and a, and a job so they'll load this huge software stack to do some things that most of us would find some very simple way to do. I just want to share this a couple years ago scientific computing we decided there's only about seven or eight of us on the staff we volunteer one hour a week to write documentation. And it, it seems like a small commitment but after two or three years we have a very valuable resource now we're partnering with the data science group. The first group we're meeting is also in the middle, and also this group called hutch data core and the people who do the run all the instruments are sequencers and things like that the source of the data. And this is public you can find this online. It's shared everywhere. So part of how this is coming about to as we get help desk tickets, you know, when you get the same one three or four times you just think that we need to write better documentation. And this is that constant feedback from our users as you know people don't understand how to do something or why things break. Continue to document that. And then this is also a great resource for postdocs people who just walk on to the campus for the first time is try to use our resources so it's a good entry point for users, and it's we've been really successful with this. So in the assignments talk the other day, we really need to make our smaller and Python smaller. So, I'd really incurred these are just like really kind of glossy overviews but so we have FH Python Fred hutch Python and Fred hutch are. And these have grown from user requests so every time I get a request for a package. So these the base are and we extend Fred hutch are so those are Fred hutch are very bioinformatics focused. It's this giant collection of requests that people have given us over the years. So, we continue to maintain that. In the last two years the number requests are just too high we're started to push back and we've documented that in the side wiki so please load your own modules use a virtual environment or something like that, unless it's a case where there's compiled C code or libraries or something difficult and then we'll help you out we'll add that into the, into the base and our Python is way too large is it's just got to get smaller, and I would volunteer to help with both brand and pipe I have document strings in there so I'm going to run through with a little I'll tweak easy update to print out those descriptions I mean it doesn't have the word science and it's going to end up on the cutting board floor just try to edit some of that stuff out. Yes, I can. I understand. So, again, these are, you know what we're doing at the hutch to support this. And it's, it certainly does help us to just use the community are and the community Python I strongly encourage that. And just, you know, try to build your own versions of these instead of extending the community version. R is wonderful. It's, it's run by CI it's not uncommon for a new version or to come out and actually see packages drop off because it didn't build. Sometimes I have to wait a week or so for people to patch their code, because our scientists want those packages but they're not available. They literally delete them. If you don't pass you have to, the stuff has to run. So, and sometimes I've patched it for other people because it's so important I'll, I'll do the patch form get it submitted get it back in the CRAN, and then build. R, the newest version. And the easy update code for R is super stable I haven't touched it in years it just seems to work. Pi Pi I just, this is what I can say on a recording but it's a, you know, if anyone can help me or has any ideas about how to make it better I'm at my wits and it's just going to Pi Pi. It seems like the only method to really be effective is to just build like, you know, start up a little container try to install it, but the time and energy to do that would be enormous to figure out all the dependencies. Right now I think it's really only good. Well my easy update code is really only good for going to Pi Pi, looking at your old version and writing new version in there dependency resolution is really difficult because it's not well enough annotated. And it just as a community to I think it's time for the scientific community to just say like, you know, this has got to get better. It's, it's really to have a quick remark to this there is actually a way to figure out dependencies of Python packages before installing them. It's not through Pi Pi directly, but there's a website called libraries.io, which tracks Pi Pi, which tracks C pan, whole bunch of sites like this, and they have a way of actually listing all the dependencies on that page and it has an API you can talk to and get all that information down. So not by talking to Pi Pi directly but talking to another website that somehow harvests that information. I'm not sure how they do it or how reliable it is, but it does list dependencies there. Excellent. That's easy to parse. I'll start on that Monday. And I just threw this together just as a quick example like when people are who are trying to build new easy configs that have anything to do with extensions lists. If you just get a request from a user for a name, just just put it in here and just put an X easy update. It's just parsing it if it'll go out it'll it'll find a new version and it's not going to match so it'll write the new one in there it's not like just save yourself the time and like going and doing it manually. And in the last year I've had to change easy update so now I have flags like update are update Python. Early on in the code I used to try to open up the easy config and figure out what language it is, and that was easy at first to do that. I think they had the word Python or are in it, but that's so unreliable now and so difficult, and the way easy configs are written now that's, I've just decided just implicitly say what you're trying to do and then the code will will go to the right section now. This is a slide I recycled from a few years ago but. And I think I have an open issue and I think the person is in this room to open up. The reason why, well when you start to update all the extensions list you'll notice the first thing I have to do is read your easy config and look at those dependencies because there'll be extension lists and those dependencies. So I need to discover all that and I recursively open every file so you know Python has pi bind, and I open every single file every dependency, try to extract every single extensions list and build a list of that first and I'm repeating something that's in another file. So, I actually look for the string. Easy config like it needs to be either in the directory I'm running in or or I need to discover it through where your easy build is installed so I need to resolve all that dependencies and where your libraries are you might have libraries that are local to you that aren't in the main repo so I look where we are in situ and also the installed base. So it's, it's good to have latest version of easy build installed. Make sure you have the latest versions of all the easy configs to resolve all these dependencies. And then I go out to pi pi or crayon and start to look at all those little version numbers and update them. And then you can see, I try to, this one's highlighted. config parser is a dependency from entry points so try to annotate that like where are these things coming from. And something I could easily add to the code is this idea of building a dependency trees like a dot file, like it's done. And that would that would be very telling to to see, you know how this looks like and if I had that information that would also help your parallel build. So you could just find the right place the tree and then just parallelize that in the build. Just a couple of observations about easy config. Some of the bioinformatics code is, I mean I don't know like, it's just, how could I, how could I submit this I mean the recursive gets stuff all over the place or there's a directory where they've hard coded like, yeah, it's just it's just so ugly and difficult and sometimes I have to cheat I just have to do a few things by hand or I make my own terrible by hand or and then I put it in our sources directory. And then from there the easy config will work. And sometimes easy easy build is filled with patches but most people are fixing the make files sometimes I'm actually fixing the end users code. So I'll take that and I'll actually try to push it upstream and then I'll immediately start using it on the site but also wait for it to come back, and then read update the easy config. So sometimes that process can take months and months and then I lose track of it and I forget. And so much of the bioinformatics code again it's just like a Python script so it seems odd to add that to the to the community. And about conda I mean often I go to these bioinformatics pages and it will just say that the only way to install it is conda they don't offer an alternative. So, encouraging people when you see that, especially once they've got an easy config or to go back and issue a PR against the original software to update their documentation and say you can also install this with easy build. So, I'm just to say containers have also been a sticky point like all of our users in bioinformatics want them and I think like, like that day is kind of coming gone for easy build. All my users now just go to bio containers and they just grab these things, but it was still. I spent a lot of time trying to use easy build put software in a container and I just not been very good at it. And it's kind of a lost cause I mean no one's no one asked me for containers anymore we were so unsuccessful for it that people just go out and find them they just go to the internet they Google they find a container and they start using it they don't care how optimized it is how well it's compiled, but the target is if it works they use it so. And I left out some slides I should have talked about. EBCB. So we build all of our software in a container. And the method I do to do that I use a multi stage build with Docker. So you need build essentials to build easy build and you need it to build boss. It works in all the stuff you don't want so I make easy build with one single line so it comes out of one layer in the container. And then I build the second container and I just grabbed that one volume and I put it in there.  If you type make it says command not found if you type GCC it says command not found it literally just has easy build and the false tool chain and just one false tool chain. And then from there, you know you can build software in a clean room has been demonstrated some other talks here. I think it's worth documenting to community because reading the email list I mean you see a lot of the issues that would be solved if people were always using consistent environment always using like a container or clean room to build their software So I think as a community maybe you know standardizing on things like that to would help to build better software. And again like going back to how we built our cluster so that's all circular. You know our build container looks a lot like our cluster node, you know we try to like have everything stripped out, and it really really needs to run with easy build first, you know before we put it out there. So that's. Thank you. It would be time and can you check if you can hear this small mic as well. Yeah so one follow up question on the container you're using you're saying you're kicking out everything. But these people does assume it can find stuff like make and patch in the OS or in the build environment so are you injecting that back in somehow or because currently we don't never miss make as a build dependency for stuff. We just assume it's there assume it's there. I'll have to look at my recipe. I don't, you know I don't add any build essentials back in and a bunch to I know with sent us and red hat make is there. I think I do something to inject it or might end up in false as a side side effect. There is actually an issue that was open on this this morning. More question for you Kenneth is there. Is there a reason why make a special because all the other build tools are like see make mess and ninja they're all built dependencies but it's just because it's a slow moving target. It's always there and it never breaks. So I've never run into a build problem. That was because we were using the wrong version of make. I don't think I've ever seen that for there is one. There's examples like this. Okay. Well maybe there is actually one example where we have to build make because that software requires a particular version of make. I said over that. Don't ask me. I have no idea. I think there's one or two cases where we do include a newer version of make as a built dependency. But usually we don't have for see me. It's very different.  And that's why we really include it everywhere as a built dependency. You don't assume it's there. And if it's there, we don't control that version. So that's I think. Now that said, we should probably still add it as a built dependency and have our own control version of it. And then maybe limit some of the problems that we see. Same thing for patch. If you want to get very far, same thing from tar, unzip, gzip, bzip. All these things were just silently assuming it's there in the US. And there's actually one change that Simon mentioned in Easy Build 5. Right now we're unzipping the source target before we load the build dependencies. You need to flip that around to actually be able to unpack the sources. And that's that's one change we're going to make in Easy Build 5. Just that wasn't let's say a historical mistake. Yeah, I really like the remark about documenting what you do with containers because it's something we don't use. And I think it's actually the better way to do it. It also makes me think, and again, this is more general remark. We do this in our Easy Build testing environment as well. I don't think we do right now. So at least one of the test systems would test in a very minimal time. And you know, even people who write in Easy Build 5 don't see this in a mobile-built container. It will be difficult to get that out to everybody. But even then, if they make a contribution, we'll at least see it in the test environment and we'll see how it works. You can find EBCB, which is kind of a pun on GBCB, Easy Build Container Build. It's out there on the Fred Hutch GitHub site and I've extracted all of our user IDs. So I have an idea. I have an eb underscore user and so in any individual site, you would just map that to whatever UID you have locally that owns your software. So as long as you just do that through the Docker environment variables, and it should work for anyone. Of course, mine is Ubuntu and everyone will want to change that. We actually made a step in that direction. So we had a similar discussion at the last Virtual Easy Build user meeting. And a couple of weeks after that, we started puzzling together container recipes and building them with Singularity or AppTainer and uploading them to the GitHub Container Registry. So now you can just do Singularity Shell or Singularity Run and that drops you into one of these containers. So we've done some work on that already. We have a bunch of containers for different versions of CentOS, different versions of Fedora, different versions of Ubuntu. So we have like a dozen or so different containers and right now it's only one per OS version, but we could have a minimal, like a clean room kind of thing and then a fat one that even has stuff like boost and things like this installed because sometimes stuff breaks because you have boost in the OS, right? So it's not only about testing in a clean room, but it's also about testing in a fat environment and that may sometimes raise different problems that you want to get rid of. And it's saved me too. Sometimes when you need to build a package that's four years old, the fact that I have a collection of these containers now that go back to like probably FOS 2019. So I can just pull that container out, build and not, even though it's like really out of date or 2018 and create something that works without having to find an old OS or try to re, you know, get those tools again. So it's nice having, when you do it for years, you end up with a nice list of containers that you can go back to if you have to. One of the things I've noticed is containers are popping up with in terms of installation on a regular base in the last three days or so. I mean, we are using it last night. I had to chat about how to do it and so on. So maybe it might be quite a good idea to basically have a container working group. I'm pretty sure somebody who is cleverer than me can put up a much better name. I'm not good in PR. I only open pull requests. So we basically become together and we share what is the best practice. And so we have a more or less, I don't want to say standardized way forward because that will not work, but we have a most common approach to how to install software on an HPC cluster. So it is actually working, documenting it. Exactly, exactly. That makes a lot of sense. And I was sort of the idea of the, the ease of those containers that we have in the central repository, I think that could be a start point and see what is there and how it has to be leveraged in tests and what can be changed or improved on top of that. That makes sense. Yeah. Sure. Yeah. It's not about the logo. It's not about the logo. It's okay. No logo. No. I don't know if you're aware, but there's actually a script in the easy build repo that is able to fetch all the Python packages that you will need. It uses another approach. So what it does is you have to first load all the dependencies and then it will start the virtual environment and actually install all your packages with VIP in this virtual environment. And then it will know exactly which, which dependencies are actually all needed and it will give you a list at the end. So maybe you should check it out. I'll have to follow up on that. It's just in the framework or is it an extra? It's an isolated script. An isolated script. But then it's from Flamefire. Alexander. Yeah. The downside of that is it can be very slow, right? Because people actually have to download everything and actually install it. And at the end of just going to throw that away because you only want those version numbers. Right. And like you said, there's no way of getting that straight out of tip. They have a hundred thousand different ways of specifying dependencies in Python requirements and by project or tunnel. Probably a whole bunch of others and there's just no way you can figure it out. And I've been looking for a tool that just if you have a compact writing package, durable source cycle, a tool that can tell me directly like these are the dependencies that I will need. I haven't found anything because it's just such a mess to look at all these files. So I haven't checked what lily.io do, but that information seems to be there and with the snap of the finger you can get it. But we should check how reliable it is or how they actually figure that out. Maybe they do do installations and then just... Yeah, if they do it, we can just harvest the data. Yeah, somebody's already done the hard work of opening it up, installing it, and then documenting that.  Because there are, let's say, scientists out there, I don't want to call them bioinformaticians, but they usually are, who write writing software and they don't even bother to specify the dependencies in any meaningful way. If the import break, you install the missing packages. Because it installs perfectly on their laptop. Yeah, for them. They have their virtual environment where everything is, and it just works fine. It wouldn't occur to them. We would still run into trouble left and right, but if those are the exceptions, we just manually deal with those. Okay. Thank you.


This study aims to investigate whether the use of a user-operated audiometry, UAUD, system can provide comparable hearing aid effectiveness to traditional audiometry, while also assessing the correlation between the user-operated ACT test of spectrotemporal modulation sensitivity and measures of speech intelligibility. This study will involve 250 adults who are referred for hearing aid treatment and will be randomly assigned to either traditional audiometry or UAUD. The primary outcome will be a comparison of the change in speech, spatial and qualities of hearing scale, SSQ12, scores from baseline to follow up between the two groups. Additionally, the user-operated ACT test of spectrotemporal modulation sensitivity will be compared with measures of speech intelligibility from the traditional audiometry session and follow-up measurements. This article was authored by Jesper Vass-Schmidt, Ellen Rabin Pedersen, Carl Christian Pedersen and others.


Why do Putin and the Republican Party sound so much alike? They're trying to cancel our people. Cancel culture. Canceled in the USA. Streaming now. Simple. Their culture wars have similar agendas. Both are trying to distract attention from the economic looting by their respective oligarchies. Vladimir Putin has been blasting so-called cancel culture. They're not trying to cancel our country. This was his third cancel culture rant in recent months. It's the same imaginary crisis that Trump and the GOP have been ratting about for several years. The goal of cancel culture is to make decent Americans live in fear of being fired, expelled, shamed. Tucker Carlson, one of Fox News' most infamous personalities, accuses liberals of trying to cancel all sorts of things. Because if it could happen to Dr. Seuss, it might happen to you. Dr. Seuss went from being a beloved childhood author to worse than Hitler in just a matter of days. Last fall, Putin argued that teaching children about different gender identities was quote, on the verge of a crime against humanity. Putin's fixation on LGBTQ people is also echoed on the American right. Republican state legislators are attacking trans people and restricting discussion of gender and sexual orientation in schools. And in Texas? Major outrage in Texas today after the state attorney general Ken Paxton likened kids getting gender-referring medical care to child abuse. While Putin's MO has been to fuel Russian ethnic pride in nationalism, America's right wing has been fueling white nationalism. To conclude from all of this that authoritarians think alike misses a deeper truth. Putin, Trump, Carlson and America's right wing have been promoting the same narrative for the same reason. Manufacturing fears of the other to distract from where all the wealth and power have gone. All the way to the top. Remember, Putin was put into power by a Russian oligarchy made fabulously rich by siphoning off and privatizing the wealth of the former Soviet Union. Likewise, Trump and the radical right in America have been bankrolled by an American oligarchy. Rupert Murdoch, Charles Koch, Rebecca Mercer, Peter Thiel and other billionaires. Sewing racism, homophobia and transphobia creates life or death dangers for many people in our society. For both Putin and the American right it serves to divert attention from the economic plunder by the ultra-rich.


In network layer, let us see some common useful commands and common errors that occur. I am working with the same network that you are familiar with one of the useful command is the ping command where you can ping any logical address or any IP address and see that whether the device with that address is reachable from your system or not. Initially in packet tracer it is common to see request timed out as the response because the devices are still starting up but you can see that we got a response from the destination the fourth time reply from <IP_ADDRESS> was received in 30 milliseconds that means that the device having the IP address <IP_ADDRESS> is reachable from my laptop. Sometimes when ping fails it doesn't mean that the device is not reachable because it is possible to block ping requests. So if your destination device has blocked ping request it means that other type of packets such as HTTP requests or DNS requests can still reach that device but not ping requests. So you should check for such settings in your destination devices also. The next command is IP config in packet tracer or if config if you are using a Windows system what this gives is a detailed configuration information about all interfaces of the system. It shows what IP address has been assigned what is the default gateway that has been set up for all the interfaces. Now let us see a couple of common errors that occur at network layer. One of them is when 169 series address has been assigned to your devices. The 169 series are called a PIPA address that means that the device having a PIPA address is not able to reach the DHCP server. So it has not been assigned any IP address. So it has assigned itself an IP address belonging to 169 series. In such cases what you can do is try to turn off the internet connectivity in the device and then restart or restart the router. Another common error occurs because of IP address conflicts. If you look at this router it has 192 series address for the LAN network and both of these devices should have IP addresses belonging to IP address belonging to 192 series. If you are statically assigning IP address and if you fail to assign 192 series then the connectivity between laptop and the router is disrupted. Let us try to see you can see that the laptop failed to reach the router. In such cases ensure that the devices in each sub networks have IP addresses belonging to that network. Now that it has been assigned an IP address in the same network we can see that the laptop is successfully reaching the router.


So, in the last class, we briefly just touched upon the supervised learning setup right. We just said what all the things, what kind of settings we consider in supervised learning. We said what is the sample space and how the labels are generated and the samples are generated. We then said the process of generation, we said they are going to be generated I then we said we set our metric of evaluation as the one which minimizes the we are interested in hypothesis which minimizes the empirical class, empirical error sorry the test error which we also called as risk. Then we looked at how to come up with a good hypothesis which gives me smallest or whatever minimum small test error right we did it through empirical risk minimizer. So, that was all in the batch setting, given me a bunch of data points, how I will come up with a whatever given to me, how I will come with a good hypothesis that performs better on a test point which I have not seen, but still generated from the same process on which I have trained myself. Now, we will move on and we will now consider a scenario where I do not have the luxury of collecting all these data points apriery to train, but what happens in my setting is the data points come one at a time and once I see a data points I have to make a decision. So, for time being we will restrict our set to binary classification like when a data point comes I have to say whether it is going to be plus or 0 or minus 1 and I goal is to make sure that I strictly I very fast making small errors or eventually I do not make any error and I want to make sure that that I do as quickly as possible. So, in this setup there is no separation of training and testing you get a point you have to decide you see you get to see whether you made a good decision or bad that is what we call as feedback. Then in the next round you get another point then you take an a you apply in let us say hypothesis then you get to see whether we made a good choice or bad then the process continues. So, we introduce this general notion of online learning algorithm. So, as usual we are going to say that samples are generated. So, this is the point where the features are drawn and then then let us say this and we have in hypothesis H this is 20 ok and let us say labels are also. So, the environment is going to draw a sample and it is going to also associate a label to that sample, but that label is not going to reveal to you ok. So, let us say now I am talking about rounds right round 1 round 2 because my data point is coming one at a time. So, I am going to now call time t equals to 1 to whatever in every term what happens a data point is drawn and when I say data point it will have both x t and y t. What is y t? y t is the associated label with x t. At the beginning of the round you will get to see x t you are going to choose a hypothesis from hypothesis class apply on that you make a prediction. So, that is basically H of x t. After you do this you get to see what is y t ok. Now, you get you can compare whether H of x t is same as y t. If they are same you know that you made a correct decision otherwise not. So, and this repeats and whatever you are going to opt based on that you are going to choose your hypothesis in the next round. So, this interaction any and how you are going to choose your next action that is a thing which is specific to your algorithm ok. Based on that you you can come up with different different algorithm. So, we are going to consider this simple setting as. So, in every round let us say write only 2. Then after you do this true label y t is little revealed and then maybe you suffer loss. So, again let us repeat this. This is going to run in rounds t equals to 1 2 all the way up to maybe let us say for some fixed number of rounds which I am going to denote it as n. So, in each round the environment has selected x t y t pair. How environment assigned a label to x t we do not know. How it is going to draw this x t we do not know. That is completely we do not know that is that is the environment. In round t as a learner my action is to choose a hypothesis and then to give a prediction in round t and this is my exactly my prediction. After I do this I get to know y t and if my prediction. So, actually this is y t hat not same as y t then I incur a penalty of 1 unit if they are the same then I incur no loss ok. Now this I do not have any control over. How the environment is selecting this pair x t y t I do not have any control, but what is in my control is how can I choose a hypothesis in each round right. Depending on this logic how you are going to choose your hatch in each round the kind of loss you are going to make is going to differ ok. Now, so this is how I am going to call any in the beginning any algorithm which is in this format where the interaction between the learner and the environment happening this I am going to call it as online learning algorithm and denote it as simply by a. So, if we have an online algorithm what are the desirable features what are the desirable property we expect from it from it ok. So, before also let us say the total loss or maybe mistakes of algorithm A we are going to denote it as. So, over t periods this is the number of mistakes my algorithm A made right. What do you expect? What do you expect what are the desirable properties of a good algorithm? You want these number of mistakes made by algorithm to be as small as possible right. Suppose you do not know anything about the environment right you are a learner if you start choosing your hypothesis in this way is it possible this you can make this losses 0 ok. Can you think enough an algorithm that is going to make this total loss to be 0 ok. Let us say I forgive you I will not count if you make a first one can you guarantee on the second one you can make a correct one maybe like right now I do not know right like whether even the second one I will get it correct or third one I will get it correct or from which point I will start getting correct. What I want what is all I am desiring now is the best one which is going to give me the smallest total number of loss. Now we are going to see that what is the best we can what is the algorithms we have that gives me some bound on this like obviously, one natural bound for this is t this cannot be greater than t right, but that is an useless algorithm. I want suppose if I can a bound here which is strictly less than t maybe that is not so bad and not I will maybe I will not immediately reject. So, first we look into algorithm what is the best bound we can what are some possible bounds we can give then we look at what is the best we can do. That means, I will not be able to bound this this I can ensure always that this bound is going to be smaller than some quantity. It may be possible that it could be larger than that, but I will see that can I achieve the smallest bound ok. So, let us get into see how to do that. So, for this interaction still you have any confusion any doubts like about this setup what we call is yeah. So, culture x t although it is not it. It is it is it is allowed to it it sees ok maybe I should write environment select this and x t is revealed to the learner x t sees sorry learners is x t and based on that it is he is going to choose a hypothesis. So, all that t minus 1 x t is also there in round t he has all these things and in round t he also have y 1 all the way up to y t minus 1 he only do not know y t all the path history is available to him ok yeah we replaced it by n smaller right this is the n number of. Yeah go yeah if this is true I mean you are saying if this happens like I had made all the mistakes, but you are now you are saying I am you are going to make a decision in hindsight after ensuring that ok I have made all the wrong decisions I should have done something else, but I am asking you to guarantee me till n point not like then it is same as batch setting right. You have seen all what happened till n rounds then you are saying what is best that is exactly the difference between batch setting and online setting. I do not have the luxury to see what all the points I got till round n then make a decision ok now to kind of start thinking what is a good algorithm. Let us try to follow the approach we did it in the supervised setting. So, when we talked about supervised setting to guarantee something on my risk or test error I made an assumption right what was that in the last class have we called it by something. So, we said that realizability assumption let us make such an assumption here right. Suppose I do not have any assumption here let us see what happens. Suppose let us see I did not put any restriction on the way the samples and the labels are generated right. Suppose let us say you I say right now I am not specifying this how this y t is generated. Let us say x t the the environment generated it gave it to you and you made a prediction. If the environment is let us say is an adversary your adversary once you make this prediction he would say the true level are just opposite of this then you are you are always going to make a mistake right. If you are making this adversary or whatever the generation of the label very powerful there is no way you can do a good job here. So, that is why we assume that. So, we assume that this y t label in each round it is not like arbitrarily generated. There is a fixed rule that governs this label generation process. We do not know this though. If we if it has been told to you then we know which is the best hypothesis right we just do not know this and also we do not know how this excess are generated what we are all assuming is the labels are assigned to the sample samples in some fixed fashion. By putting such constraint we are restricting power of environment right. He cannot do the same thing which I said earlier like whatever I said y t had he cannot say the negation of this is the label because the negation of this need may not satisfy this condition right. So, because of that the environment can have such adversarial role in that case. Let us say such a reliability condition holds now can you think of some good algorithm for this case? What would be your hypothesis selection strategy? In terms of the terminology I may also sometimes call this hypothesis as actions ok. So, we have set of hypothesis class right. What I am doing is choosing one hypothesis I can just think that each hypothesis is like an action and in each round I am picking one of the actions ok. Yeah, yeah let us assume that is also finite ok. So, this process this h is such that the true label generation process is coming from my class itself. So, by this I am ensuring that at least there is one hypothesis class one hypothesis in my hypothesis class which I happen to apply in each round this should be 0 it is just that I do not know which is that I need to identify that. Now, the question is then the question putting this question alternatively is how quickly I identify that hypothesis? Once I identify the hypothesis I am no more going to make any mistakes right ok. So, to begin this let us start to looking into some algorithms. Once one simple thing I can do is I will let us say in some round I pick some arbitrary hypothesis I do prediction at the end I got a hypothesis right sorry I got a label. Now, does it make sense once I get this I keep only those hypothesis which is giving me a label y t on that x t and throw everybody else why? So, if I throw everybody else whatever remains in the remaining one h star should be there right. So, I am not losing that. So, I can do keep throwing that those guys who are making mistakes on that particular y t then I can narrow down on my remaining ones. So, let us see how that algorithm I am going to call it as consistent algorithm. So, this is how my algorithm is going to look like. So, anyway now as I said once I make this reliability assumption that h star belong to h the problem now boils down to identify which is the right hypothesis in my hypothesis class h right. So, initially only that is given to me my input is hypothesis class and my objective is to identify the good one there. So, what I will do in this cases I will keep updating my hypothesis class. So, initially I will take my entire hypothesis class as my current hypothesis class then after I receive x t in round t I will just apply I will just choose one hypothesis arbitrarily from my current hypothesis class what so, ok. So, notice this I am maintaining a new set V t here which is getting updated in every round and this V t is the remaining set of hypothesis. So, in this we are eliminating hypothesis whatever remains that is going to remain in this set. So, let us say whatever the hypothesis remains I have in round t I am going to choose one hypothesis from that and get a label as given by that hypothesis. After I do this I will receive the true label which is generated according to this h star. Now what I will do I am going to retain only those hypothesis that are in V t which are consistent with my true label right. So, other other hypothesis has gone has been thrown out will this V t and V t plus 1 the V t plus 1 is going to be no it it cannot be bigger than V t right because we are selecting hypothesis from that only ok. Now the question is how much a mistakes this algorithm can make can we say anything about it why is that right. So, can we write that formally? So, the intuition says that if there are h hypothesis one of them is good the remaining ones get eliminated if I make cardinality of h minus 1 mistakes right ok let us see this. Let us say till some point I have made m mistakes sometime t I do not know what is that t let us say till some round p m mistakes have been made ok. Now we know that from this update logic if a mistake is made at least the guy the hypothesis which made a mistake that will definitely go going to get eliminated right. So, my size if a mistake happens I know for sure that V t plus 1 will be smaller than V t by at least 1. So, if right say till round t m mistakes have happened then what I can expect I can write as this quantity how I can upper bound this because m elements have been thrown out out of my cardinality of h ok. Now let us say till V t number of rounds some number of whatever let us say let us say whatever let us say max number of rounds the maximum number of errors have happened I want to bound this maximum number of errors right. And notice that this bounds here whatever I am writing ok let me call this as this bounds whatever I am writing they are independent of what is the sequence I am going to see ok the sequence has nothing to do the way I am bounding this errors ok fine. Can I say something about this also the lower bound on this in every round it is going to be at least what one right because the true hypothesis belongs to my class h and that will never going to be eliminated right because that never going to make a mistake. So, because of that this is going to be this. Hypothesis at nth round final round. Yeah final round number of ones remaining if when it remains let us say if h max number of error m max number of round errors have been done this is the bound right. So, now from this we know that max number of bounds I am going to get this that is what we also said right this is the number of mistakes ok fine. Now the question is can we do better than this. Max of them predict y 1 then we output y 1. Yeah. So, in how you are maintaining the hypothesis what remains in each round? The ones which made a correct decision. So, and this is also. No, but to do this you need to know y t right which I do not know before hand. I am only changing there is choose any h right. Yeah. I am only choosing like such an h which agree with the maximum like. So, that means, you are using whatever remains in the previous round the hypothesis use that to see which one says 0 and which one says 1 if majority of them says 1. Yeah I will choose such an h. So, why is that better? Because if there is a mistake then more than half of them we will be able to do it is the next round. So, is this natural like at least from this one to if you want to improve that you would like to do that or not ok. Let us see first let us write that algorithm and see why it is going to be better than if at all it is better than this. So, we are going to call that halving algorithm why we are going to call halving algorithm because in each round according to his logic if you are going to make a mistake I am going to throw more than half of the hypothesis ok. Let me write that. So, the algorithm is the same as this except it differs the way I am going to choose the label ok. So, let us see the input is the same initialization is the same. Now, instead of choosing this hypothesis here I am going to in this step directly give up label which is as follows. So, wherever I have written this bar that means this step is going to be the same as that step in the consistent algorithm. So, initialization is the same we are going to still give me the same hypothesis you are initialized with v 1 equals to h. Now, in each round after you receive x t what you are going to do can you all parse this statement here what I have written what I am doing is I am going to do is arc max looking at its arc max over this variable r which is taking two values 0 1. So, 0 for the label 0 and 1 for label 1. What I am looking at here maybe I should write a set notation here I am looking at I will first take one r let us say r equals to 0 I will looking for all hypothesis in v t which are giving label this is r here 0 on my x t and now I will count cardinality I will count how many hypothesis are there which they label 0 on my point x t. Then I will can go and do r equals to 1 I will take and I will do the same thing and what I will get the number of hypothesis which are giving label 1 on that point x t and I take that cardinality. So, this is basically if you look into this this set is one set is all hypothesis which is giving label 0 and another set is all hypothesis which is giving label 1 on the same point x t and now I am looking at arc max here right that means, I am just looking at the set which has larger value and whatever the value they are telling maximum number of hypothesis saying I am going to take take that as my prediction y t hat. If the set which told 0 has the larger larger in number then I will take 0 as my prediction and then what I do I will resume my true label y t then I just do the same updation step here. If we have selected y t hat as 0 then all the hypothesis that gave 1 we will reject about that. Yeah we do not know we do not know yet whether they are going to be rejected it depends on y t. So, right let us say you have taken for time being assume that in round t it is so happened that all the hypothesis that said 0 label they are larger in number they are in majority. So, you you gave 0 as your prediction after that now assume you received 0 as the true label then those guy remain the guy who said 1 they got kicked off. But let us say that y t happened to be 1 then all those guys who have said 0 which were in majority they will get kicked off ok. So, it depends on finally, you are going to make elimination only after you saying the y t label right. So, sir even if the number of 0s are more and we get y t the larger set get kicked off because it makes sense right because by kicking them off I am not losing h t what my focus is on keeping my true h t ok just ok. Now, with this can you see when you made a mistake are you ensuring that more than at least half of your hypothesis are getting eliminated when you made a mistake here you could only ensure that 1 of the hypothesis got eliminated but whereas this half of the bad ones got eliminated ok. So, because of this if you made a mistake in some round t ok may be just let me take some space here. So, suppose let us say mistake happens in round t. So, what is the relation between y t plus 1 and v t in terms of their size can we say something about this is equals to half of this quantity right and if I keep on iterating this over t periods what kind of bound I will get. So, over n period let us say over n plus 1 whenever there is a mistake is going to happen this is going to get halved and eventually if I keep repeating if let us say whatever 2 to the power some max number of mistakes have happened I will get and then I will going to get this bound is this correct we give many times that that example. So, let us say at some round t you are left with 20 hypothesis ok. Now, an instance x t came and you notice that 15 of them said 1 and 5 of them said 0 ok what will be a prediction? Your prediction will be 1. Now, after you did this prediction is 1 you saw that your true prediction is 0 right then what you are going to do? You are going to kick out all the 15 ones. It most? Like the feeling of 1 and it can also happen that the original label was 1. Yeah. And our current hypothesis is not true. So, the other 5 would have been kicked out. Yeah. So, in that case you did not make a mistake what were only that is why I if mistake happens then only this relation is true this relation is true for every t. Yeah, if mistake happens in round 2 this relation holds if I am if the mistake did not happen in a round t this relation is not true. So, that is why I am saying like if maximum of number of mistakes has 2 m to the power if m max then this is the bound we are going to get. And if you just invert this we know that this is going to be this and what you are going to get the max number of bounds is log to the power 2 times cardinality of 1. So, you see that if I now go for a halving algorithm I will get significantly better bound right compared to cardinality h I am going to get log of cardinality of h that means this bound is exponentially better than the consistent algorithm.


Welcome traders to another tick mill, Charlotte with me, Patrick Manly. I want to draw your attention today to developing opportunity in the euro-dollar daily time frame. As per the weekly market analysis, we've been tracking a potential five-wave pattern, looking to complete into a test just above 121. The 121 area equates to an equality objective versus the wave 1 from the wave 4 low at 160. We also have the 127 extension of the wave 4 consolidation at 120. We have predicted weekly range resistance at 121. So, watching for each day reversal patterns above 121, set countertrend short positions, targeting move back to test the 119.50 area as the initial downside objective. As always, traders plan the trade, trade the plan and most importantly manage your risk. Until next time, thanks very much.


Going on everyone Sam here with late sports cards been one box of 2023 leaf eclectic football for Brian C. It's a good luck here at Brian. So we got on this leaf eclectic Kid with a potential dagger. It's happening. Oh boy We got Zay flowers Nice one there seven to ten great start Great start, of course, that's the Raven's jersey as well. Very nice Grats on that Brian Kate is a stud man feel bad for him Honor guard Carson Beck three of ten on the die-cut auto for Georgia or still at Georgia good stuff there Brian We've got a George Pickens that is gonna be at six of nine nice for the Steelers Georgia Pickens six of nine and a Valiant's effort that is one of one on the gold vinyl Charlie Jones the Bay He's a Cincinnati bangle Cincinnati bangle Charlie Jones very nice That is sweet one of one to shabby empty there that'll do for your break there Brian. Thanks again for the sport But again right out to my man


Hi everyone, Joe for Jaspy's casebreaks.com coming at you with our last two boxes of 2020 top scrim on baseball Ben Baller edition This is pick your team number six. I think unless they're sold out if you're watching live I think Jason has two more personal boxes left and that's it for now But for the last two boxes big thanks to all of these wonderful people right here Now we got to give away the Chicago White Sox in this so it's our usual two teams one entry So on and so forth four teams two entries blah blah blah, so let's take care of this Brian with two teams That's one entry John with four teams. That's two entries Chris G two teams one entry EA two teams one entry Frankie two team four teams two entries John two teams one entry Josh two teams one entry Nathan two teams one entry Oliver Two teams one entry Richard with four teams. That's two entries and Sean with two teams. That's one entry So I'm double-checked. I think we've got everybody. So Jeff Yankees have 17 home runs in three games All right, let's get all the names in here name on top after After 10 name on top after 10 gets the white socks in these last two boxes five and a five hard ten one two Three and tenth and final time name on top Chris Garosi There you go. Congrats to you. You get the white socks So let's get these names back in team order right here and let's print this out and Let's see what's in these final two boxes. Good luck. Got Thursday night football on the background as well Torres just his 18th hit the 18th Yankees home run in the last three games. Who are they playing? I remember I marked these pick your team six right there. All right, pick your team six. Good luck Jays Sorry blue Jays There's the final prayer right here on Thursday the 17th Hey, they may be able to sling it in around a little bit. Yeah, that's what I've heard 21 for fortunately, we have not run into that issue. Remember all car chipping this Richard, what did you get last night? What's up, Corey? Always nice to wake up to a monster though. Oh That gold Louise robber. Yeah, that was pretty nice. I remember that Congrats What does that go for? That grades out nicely to man. Oh, you are gonna grade it. All right. Well, yeah, let us know what that grades out at That's pretty strong. There's our die cut generally falls one per box Vlad Guerrero, Jr. Blue Jays Sean Maddock and the blue birds There's a Louise Robert That mid-80s design right there. That's a nice one for Chris Garosi who won the White Sox We got some orange nice Tony Gonslin Who's been playing well now that he's getting some getting some starts now? Nathan with my Dodgers four out of 25 nice He loves cats Cat guy another Louise Robert base card this time. We got a gold Ronald Guzman 44 out of 50 For the Rangers, that's gonna be for Josh Allen quarterback Josh Allen Or defensive end Josh Allen. What do you think? Who has more time? To join group breaks at jasphys case breaks calm Maybe both of them up time It's only Thursday Finished up practice had a nice dinner Probably hanging around There's Josh Allen right there. Hi Josh How are your bills gonna do 875 anything the bills are gonna do So we give us some inside inside trading trading information one out of 99 on that DJ the Mayhew for the Yankees Frankie D Gordon blue goes to Nathan and the M's Aquino for the Reds EA We got Francisco lindore John Samuelson and the Indians one out of 75 We got Carter Keeboom Chris and the Nats 18 out of 99 Sorry Trevor Williams or Zotane? Peter Lonzo Gavin Lux rookie card Going to Nathan and my Dodgers Gavin Lux is starting to starting to hit nicely and there's a Niko Horner rookie card for the Cubs EA One of their big prospects.  Oh Peter Lonzo gold auto out of this autos are not common in these Ben Baller sets SubAP what's going on? I'll be honest with you 21. I don't know much about Ben Baller. So So I Think it looks cool, but Since I'm not super familiar with him. It doesn't really add anything for me. I like that you like it I like that it has good secondary market value. I like the box prices are going up. I dig all that What I dig even more is that is tops kind of expanding their their sort of Horizons a little bit stretching what they can do with product and doing like collabs like this And I think that's a smart move So maybe Ben Baller leads to another person's collaboration another designers collaboration. I mean it's It's crazy to think like high fashion could get involved in this You know So who knows I think it's cool though You know have I know Because it didn't Bryce Harper kind of kind of curator design like a set Maybe there'll be more player sets for these major brands like my chrome Yeah, Richard says baller work of his stuff like chrome can't imagine on other products. Yeah, I think you're right I mean tops have to be carefully can't just Ben Baller everything, you know, but I think I think it just depends but what if like I Don't know what if Cartier does this diamond icons, you know what I mean? How crazy would that be? What if what if Tiffany's does a diamond icons product and you get you get the or dynasty or something like that? I mean you might think it's crazy. I don't think it is They're going this direction. There could be some some interesting collabs at that point Yeah, I Have I have heard that Stevie Oki into the into the trading cards now Which I think is great, too, you know, I Think that that's another Person that you may not think that would that would enjoy the hobby, but but that opens a whole new audience To people that are interested in cards There's Jake Rogers the Tigers Josh Allen with that one There's Dylan Cease 14 out of 75 white socks Chris Garosi with that So I always kind of chuckle when people are like, oh, you know The prices of this are gonna tank and people are just not gonna pay these outrageous prices anymore But 16 out of 99 but as the audience keeps growing Steve Aoki's audience Ben Baller's audience, you know Whoever else gets into this sort of stuff, you know, like other YouTube stars. I've seen get into it, you know, like All of that just keeps keeps the the keeps the brand and keeps the hobby keeps it keeps expanding it making it more mainstream instead of just Us hardcore collectors that have been doing these group breaks for so long. It opens up a whole new world now Not every it's not gonna take for everybody, you know But if for every hundred new people if like five people like get really super serious into it, that'd be awesome What a return If those if that happens, maybe those guys end up or girls end up Discovering Jaspies and that helps us too now like Zion prices, you know stuff like that They'll be there'll be, you know a stock market like up and down. That's just natural 31 out of 50 Akunya but in general though in a broad sense the hobby I think is just Could could just continue to grow with all this interest. I don't know. I think more kids want to get into it Like Ben Baller collabs, you know, it's like so it's like supreme gets into it It's like some of the things like teenage kids would love like love these brands and It becomes aspirational, you know, so they're knowledgeable about it You know Before they even can start spending money on it think about that Yeah, Mark Wahlberg, you know open up boxes to that's a whole other audience You know, so then it's like they see his kids opening the stuff up that catches that age range You know that gets more people that age range to discover the hobby or at least learn about it And maybe they'll be smarter about spending on it, you know, because it is expensive Well, they just get their parents to spend on it, right iPads are expensive too, but every other kid seems to have an iPad There's one Soto die cut for Chris and the Nats John Samson, you're asking new students to see if they're interested in getting a box of cards and leaving a box of mosaic On their doors to start the school year. You're the best teacher ever There's one Soto die cut Best teacher ever Make sure they appreciate what that mosaic value is Before you do that John. Ah mosaic base. I'm not that rich. I was gonna say I was like, are you dropping like blaster boxes on their door? as Matt ties to 50 Louise Robert No, but I mean I think Yeah, I think as kids get more into it or adults who teach kids teachers like John get into it I know we've had a couple other teachers by Or we've donated our base cards to some to some teachers Actually, John, you should reach out to about us about that if you can find a good way to use those But we've we have in the past donated to teachers And they've used cards in their classrooms for stats classes or math classes and stuff like that, you know to Been able to use that so there's there's a lot of ways the hobby has been expanding We're trying to do we're trying to do our part, too I mean as a business at boo hooves us right if if more and more people know about the hobby and if they're knowledgeable about it There's Ronald Guzman 75 Josh Allen with the Rangers and there's the Marcus Simeon with the A's John G 57 out of 99 on that We're trying to build a build a sharper collector That's why we're so big on everyone doing their own research and And doing all that stuff and trying to try to teach as well as enjoy and break Just helps the hobby ladies and gentlemen. That's what we're trying to do trying to do our part little by little Thanks, everybody. That was another great break of 2020 top scroll baseball Ben Ballard edition pick your team six I'm Joe for jazby's case race calm and we'll chat more with you next time. Bye. Bye