Good afternoon everyone and welcome to the next edition of the Bar Accel webinar series. My name is Rosson Apostolov and I will be today's host. Today we will present you a very interesting talk on one high-level framework for development of parallel applications, the ComSets framework, and it will be presented to us by Daniel Letzi from the Barcelona Supercomputing Center. Barcelona Supercomputing Center is one of the main partners in BioAccel, and they are working on the development of such frameworks for parallel applications. So for those of you who are new to BioAccel, I want to give a very brief overview. BioAccel is a center of excellence for computational bio-regular research, and we work in three main directions. One is the improvement of the performance, scalability and efficiency of several key applications, extensively used in bio-molecular research. These are Dromics for molecular dynamic simulations, typically used HADOC, which is used for integrative modeling and docking, and also CPMD for hybrid QMM simulations, for example, of enzymatic systems. In addition to the main codes, we also work extensively on the development of efficient workflows and packages associated with data integration, which have the main aim of improving the productivity of researchers, so that in a very easy and user-friendly way one can bundle together different applications to scripts and easily submit them to clusters for large-scale computations. And today's presentation is, in fact, on one of the main results of the work in BioAccel in this direction. Comcess is one of the main platforms that we work with. So in addition to working with the software and with the workflows, we also have a lot of effort on training, consultancy, we're promoters of best practices for usage of applications for code development, and we work a lot with end users from academia and industry. We organize the work along several interest groups, which we invite you to join. You can find more about it on our website and visit our discussion forums and browse through our code repositories and visit the chat channel. With that, I would like to present our today's speaker, Daniela Letzi from Barcelona Supercomputing Center. Daniela Letzi has a PhD in IT technology engineering from the University of Salento in Italy, and until 2008 he's been a researcher at the Center for Advanced Computing Technologies at the University of Salento and member of the Euro-Mediterranean Center for Climate Changes. Since 2008, he's been working at the Barcelona Supercomputing Center as a researcher, and his work focuses on high performance, distributed and cloud computing with the associated programming models, specifically focusing on interoperability. He has a very broad experience, he's been working a lot of European-funded projects, of various sizes, and he's currently involved in the Mobile Folk to Cloud project, the land support initiative, and he's one of the main people in the working on workforce in BioExcel, as I mentioned already. And you can find him on Twitter with Lezidon Twitter handle. And with that, I'd like to change now to Daniela to start with the main talk. Okay, good morning everyone. So in this presentation, I will introduce the COMS programming framework and how we use in the BioExcel initiative. I will do a very short demo of the workflows that we implemented in the BioExcel around molecular dynamics using our framework. So when we talk about programming and application, we have many challenges that we have to face. The first is what is the magic that we realize to face these challenges? So we make with COMS, in this case, things executed in non-parallel, for example. First of all, the first challenge is the heterogeneity of the variety of computational platforms we have to deal with every day. So we have new architectures, that means organizational processors, processors are designed with multi-cores, many cores. Now we have a lot of usage of GPUs and accelerators and FPGAs. So this is a very important issue that we have to deal with because of course we have to run an application, which is supposed to be one code on different backends with heterogeneous architectures. So the idea is when we talk about high-performance computers, we shift from the sequential way of thinking the application to parallel. So another step that we have to introduce in our schema. So using possibly new instruction sets, new languages, SMPI, OpenPA, etc. And we have every day new computing parties. We started with a cluster, then there was the idea of read computing in the 90s. Then we have the era and we are also in the era of clouds. Now what is missing in this slide is containers as you may know. So different challenges related to different computational platforms. So when we talk about programmability, programmability is the capability of programming something, but we have to do it in the proper way. We have to be good programmers and provide to our users programming models that are easy to be used by the application developers that are able to provide the expressivity to the user in order to program in the proper way the code and reduce as much as possible the lines of code. Of course we need to provide semantics functions that is the life of the developers. The main blocking factor when we talk in parallel is the fact that in a way we are sequential. So we may think that something can be done in parallel, but still we think about communications in a sequential way. So in the end when we work with our users that comes from the scientific communities, they are used to work with programming languages that are thought to be used to execute sequential applications. So when we shift to parallel programming, one of the first things that we have to change is the fact that the user on his own has to express their parallelism, has to think about how to distribute the data in order to enable this parallelization and to also synchronize and perform their communications typically in MPI, for example. So the things are getting also more complicated when we want to distribute the application on distributed environments. As we said before, we have a multi-course. So when we distribute things, we are in many cases using a heterogeneous infrastructure as I said before. So we have one cluster that can have multi-course, another one that can have just GPUs. We have to distribute across multiple nodes the part of the application that want to parallelize. And also we have to deal with the memory that in this case is distributed. And above all, we have a lot of middleware to manage the resources. We can have from HPC to managers, to cloud managers. For example, Amazon, Google, they provide their own management system. And now we have, as I said, containers, technologies. So with all these problems in mind, related to the programming of application on distributed system, we have our vision here you see since many years on how to develop programming frameworks that can, let's say, abstract these difficulties to the final user, let's say, to the applications. So the idea is that the programming model should enable applications to be agnostic of the computing platform. The idea is that this programming model layer should be high level, as clean as possible and abstract to write the applications. And on the other side, having a powerful runtime that can perform the optimization, parallelization techniques on those applications. And that will take care of all the intricacies of using the underlying technologies, for example, to execute the same application on the clusters, on grids and clouds, etc. So with coms, you know, coms mean com superscalar. So what is a superscalar programming model? The idea of the superscalar programming model comes from the superscalar processors, where the idea of the superscalar processor model is that we have a task that is a unit of work. And these tasks are executed in out of order when there are no dependencies related to each task. And so the same idea coming from this superscalar processor is being adapted to the programming model. So the idea is that the applications are built, are programmed in a way that the runtime of the programming framework is able to build a task graph that express the potential concurrences between the invocation of the tasks. And so this runtime is able to make decisions on when and how and where to execute a task and offers abstractions to different backends related to, for example, computing and storage. So this means that a user can write the program, the application, and they can also configure the runtime in order to execute the same application as an important feature of our programming framework on a quite large variety of computing infrastructures without changing the code itself. So the main elements of this programming model of superscalar programming model are the superscalar program that is made of the sequential code of the user. So the user doesn't have to parallelize the code. We are not introducing here a programming language SMPI where the user has to write from scratch in case it's the application in order to be properly parallelized. So the application is sequential. We have a single, we have a shared memory space. And we have to identify the task. I will show you shortly how this identification task is performed. So the task is set before the main element of the programming model is the computational unit. This could be, for example, in an application function of a certain granularity that operates on some input parameters and variables and produces some output. The task can be, as I said, it can have different granularity. The granularity means the amount of work that is performed inside the task is inside the module, the function. And depending on this granularity actually we have here at BSE at least different implementation of the programming framework to deal with the different granularity models. So this task, when executed, this is important, is execution is independent, at least the execution itself from other tasks. The only dependencies we have are data dependencies, but these are managed by the runtime. Related to the syntax, there is no language, there is no API itself, what we have are task annotations. So the user has to identify the components of this application that are candidates to be tasks to be executed on a given node, on a given slot of the available computing infrastructure. As to provide a description of these functions of this task in terms of arguments type and directionality and eventually provide also some synchronization. So this is not something very common, but we can provide some code that allows the user, for example, to perform synchronization between the calls to the task. So here at BSE we have two main implementations of this idea of the superscalar programming model, which also is called a task-based programming model. So we call this the idea as task-super-scalar, star meaning whatever, super-scalar, and then we have two main implementations. We have the coms implementation, then we have the coms-py-coms. We use the term coms-py-coms, we mix a bit the definitions. We started with coms, but then with the advent of Python. So we interest on this kind of, on this language. We also adapted the name to, so the difference mainly is that we have the same idea of the task as a basic unit of work, but we address different kinds of applications. We work at, for example, in a cluster at a level of a node. So we have shared memory, architectures, we have GPUs, so we are in a cluster, and above all the generality of the task is quite small. We are talking about microseconds, milliseconds. While on the other side with coms, we deal with more post-grade generality where tasks are composed of methods, maybe programs, simulation that can run from a few milliseconds to days in many cases. And in the case of coms, the idea is that everything is executed in memory, so the dependencies are in memory. While in coms, we deal with the distribution of files. We realize parameters as objects. And it was related with the language support with coms, users can write application in CC++ and Fortran. Why do it coms? We have Java, which is the native language of the coms around them. And then we also can have application of written in CC++ and Python. So as you can see here, we go from a pure cluster computation to a distributed computation with coms with clusters, because to us a cluster also is a distributed environment because we consider each node of a cluster as a separate entity. Let's say it's a separate slot where to execute tasks with clouds, grids, etc. So programming with coms. Again, the idea is that the code is still sequential. So the user has sequential code, sequential application. And what we do is to annotate this code to identify the tasks and the directionality of the data. The directionality means that, for example, if I have an integer in the call of a task or a method of function, the user has to say that this integer is an input of the task or it can be an output or it can be also input output. Based on this information on what has to be executed in the house or what are the parameters of the application, the runtime builds a task graph that express the potential concurrency of the execution of that application. This is the basic idea. This is important to understand the coms. The basic idea is that we don't do any magic, let's say, as I said in the first slide. But what we do is we try to exploit the potential of implicit parallelism that we have in many applications. You can, for example, consider a typical part of a code, which is a for loop. We call several times, depending on the number of iterations. So we call the same code many times, but maybe with different parameters. So depending on the type of parameter and on the directionality of this parameter, each call can be independent of the other. So, for example, if you see this example graph here, you can see that in this case, we have the green pallets at the beginning that are independent of the other. The only dependence is the input that they receive from the main program. But this means that depending on the number of nodes that I have, I can execute all these tasks in parallel on the available nodes. So this is the basic idea of, of course, expressing the potential concurrency of the execution of the task. So there is no identification of the parallelism inside the code, explicit parallelism inside the code. And, of course, the other important feature is the fact that this code that we annotate is agnostic of the computing platform. It's the runtime that enables the interpretability with different decents, in cluster clouds, in topical containers, et cetera. So, in the case of pycoms, so the Python is an example you can see here that you have a regular Python code with no parallelism anywhere. And we use decorators to identify the task inside the Python. In coms, in general, we have two kinds of annotations. The task annotation to identify the coms. But very important because it can drive the, or can force the scheduling of the runtime. This is because, from what I said, we have the definition of the application here in the programming model. And the user can specify, for example, the number of processors needed to execute that specific function independently of the actual infrastructure. On the other side, as we will see later, coms has a description of the real platform where the application is going to be executed. Based on this description of the resources and the description here of the application, the runtime matches those requirements and decides where to execute the task. As I said before, we don't have any API, but we have some small, very few API internals to, for example, synchronize the execution. This is, for example, used in Python to synchronize a future object as a result of the execution of a task. In general, the coms weight on is used to block the execution of an application until all the tasks of that part of graph are executed successfully. So this is an example of Python. In Java, because of the different features of the languages, we have a separate file that we call annotated interface. So it's an ITF.java file that comes with the Java file where we do the same as in the Python case where it is expressed in a separate file and using a Java annotated interface. So, for example, in this case, we have the align function. In Java, they take several parameters. All but one are input parameters, and there is just one out, which is the result of this align method. And we have the part that specifies the constraints. And here we can find another annotation in coms, which is the binary annotation. All the... I'm not going to show all the possible annotations in this presentation, but of course you can have a detailed description on our documentation. The binary is... The binary annotation is very useful because it allows for the execution of an existing binary that implements the specific task. This is very common. We deal with many of these cases because in many... As I said before, in our experience, we have collaborations with the scientific users that already have applications. Also here in the Excel, in the end, we do the same. So the idea through this binary annotation is to provide support to an existing binary in a more clean and easy way. So in Java, you can have part of the description of the task also where the method is implemented, which class, Java class, the method is implemented. And as you can see here, this lower part in the main code, this function is called as it is. You can see here there is no actually... There is no coms here, there is no specific language here. So this could be considered as the sequential code of the user. That if you execute in a sequential way, it would be same as executed in coms. The only difference is that coms uses this description to parallelize where possible, respecting, of course, the sequential integrity. We parallelize the execution of these assembly partition tasks in a proper way. So from the point of view of the user, the execution is exactly the same as without coms. The only difference is that with coms, the code is executed immediately. This is because coms, as I said before, intercepts somehow the calls to the user methods and substitutes these calls to invocation to tasks in a remote node of a cloud or a grid, for example, or a cluster. But the execution will keep, of course, the sequential integrity and coherence of the regional sequential code. So this is a brief introduction to the programming model. As you can see, it's quite easy. Again, the complete description of the programming model is available in coms documentation. So talking about where we can execute coms applications. So our architecture is simple in the sense that we have a programming model part, as we have described so far, where we have the support for Java, Python, CC++ application. And then we have a runtime, which is transparent to the user. In the sense that the user doesn't know, of course, the runtime details, but has to configure some file in order to tell coms where to execute things. And we supported quite a lot of infrastructure. We have support for clusters. Here, when we say cluster, we mean a queue management system. For example, here, BC, we are not an awesome way that this works with this rule. So we have an adapter for this rule. This means that the user can include an entire coms application in a cluster. And the coms deals with the allocation of resources of nodes and et cetera. We have supported to class. We worked a lot in the last years with clouds. We have interoperability with many providers, as for example, open Nebula vacancies, open stack, Amazon, Google. We have a connector. We have connectable connectors, part of the runtime that can be configured for different vacancies. We have a connector with J clouds that gives us interoperability with many different vacancies. Also, for example, Microsoft Azure. And coms is also able to talk with Docker. So we have a coms Docker image. And this Docker image can be in general a Docker application that is packaged as a container, can be executed with coms. And for example, one other backend that we are talking about is Mesos that you may know is a quite big source management system for containerized platforms. And so once we know that we have this interoperability, how I can select the execution platform. So it's quite easy. So just as a brief introduction to the runtime details, the coms runtime is made up of different small components. And what the user has to do for executing, sorry, we have components for the generation of the graph. This task analyzer is the component that is responsible for the generation of the task graph that is used then to expose the parallelism of the invocation of the task. We have the scheduler that based on different pluggable scheduling policies decides how to execute the task and where. And we have then different plugins for the source management, as I said before, so for different source providers, for clouds, for containers, and also for, yes, so we have support for different persisting projects, protocol and communication protocols. This can all be configured depending on the user needs. So the configuration of the coms for the execution in a specific infrastructure is done in this resources component providing two simple files. We have a description of the other sources that are available for this execution. This means that here the user can describe, for example, in the case of a cluster or a cloud, how the nodes are made or, for example, how many processors each node, the memory, the size of the disk, et cetera. And then can configure to another file, the project file, how to access those nodes. For example, the project, the user usually provides the dates on how to connect to an Amazon cloud, so the project user can provide the key, the secret to connect to Amazon, et cetera. So through the proper configuration of these two files, the same application, again, I want to highlight the fact that the same application can be executed on different back ends. Also, we have a lot of tests where the user can execute the same application on an intro genius set of resources, a typical test that we do in cloud is to start the application in a cluster, but then comes also a configure to be able to use a cloud as a back end where no more resources are available in the cluster, it's a typical case. So we have hybrid execution of combs. There is no limitation in the sense. So this part of the connectors is responsible for this. But cloud is very powerful how we implemented the cloud support because we enable elasticity for the user. As you know, with clouds, there is this idea of virtual resources that can be created and destroyed on demand. In this case, it is the combs runtime based on the actual load of the application, so based on what is currently ready for execution in the test graph, combs can ask for more virtual machines to a provider with the task. And so you can, for example, a big part of your application that requires a lot of task execution. In this case, combs understands the text of this necessity and asks for more virtual machines to a provider. Once this peak is over, the resources can automatically destroy a lot of the users. So the application usually, as you can see here, are executed to a simple script command, which is the run combs command. And depending on where to execute, we have different options that can be provided to your combs script. Again, all the details are provided in the documentation. So maybe I can skip this part to make the demo in the end. So you can have different configuration of combs. You can execute your own local resources in an interactive way. It means that you run the master. We call the master the part of the application, the main part that is analyzed by the run and that generates the task that are executed on the distributed nodes. Distributing the nodes means that the task code is sent to workers, we call the workers part of the combs run time that takes its input, the task itself, and executes the code on the remote resources and sends the results to the run combs. So this is the most simple way of executing combs, for example, on our laptops for testing. Then we can have, as I said, in the cluster, we usually connect to a login node and instead of using, for example, run combs, we use NQ combs. In this case, the application, the resources are not provided by the users because we have an automatic description of the resources because, as I said before, combs is able to talk in my nostrum, for example, with the slope. So in this case, it's the run time that allocates the resources on behalf of the users and knows when the reservation is ready and takes care of using the pool of resources that are being provided. In the cloud, in the cloud, we have to configure the specific cloud connector to be able to talk with the provider API. So in the case of OCCI, that is a public standard, that you, for example, the European Infrastructure Federated Cloud, the user has to provide the credentials to access the providers and instantiate with the machines. In these slides where you have access, for example, we have a video where we use the Google Cloud platform. So if you have time, you want to see it. We have our channel and you can see a demo of a combs application executed in the Google Cloud. In Docker, as I said before, we use the compose to describe applications and to deploy applications as a set of Docker containers. In Docker, you can have different possibilities. One option is to use swarm. Docker swarm is a way to be then deployed in a Docker cluster. So once you have this one cluster configured, you can execute a combs application as a set of Docker containers. In HPC, given the constraints and requirements that we have on the usage of containers, we can use the singularity. For example, we did several tests with the combs in my nostril using singularity on a small set of nodes. Actually, containers, I'll show you after, is something that we are working along with. So containers is the state of the art for the distribution of applications. It's quite easy, and for us, it's very powerful. We're working a lot also in the content. Something we also, which is very actual, is how we deal with the combs, with the convergence between HPC and the database. So we have the objective to provide a programming methodology to develop complex workflows where we have a large simulation, for example, the application that are made of MPI simulations that can run in a supercomputer, together with the data analytics parts. What we call the dynamic workflows. We have a high-level part that calculates data analytics models, and based on that, we can then instantiate an MPI execution on a supercomputer. So we're working a lot with this. It's our ambition now. We are going to combine these two worlds, the HPC and the data analytics world. And we are working a lot both on the programming side, of course, in order to provide the abstraction to the user, for example, to program with combs streams and for data analytics. And on the other side, we're also dealing, with different storage patents that are today available, for example, HDFS, or RADIS, or other technologies that are developed in-house here, yes, TES, data play, or persistency, et cetera. And also something very powerful. Now we are working on kind of storage, in-view memories, sort of intermediate layer for storage between the disk and the run with the persistency, something that we are working on. And this slide also too, because when we talk about combs, we said it's very powerful, we have a lot of users, et cetera. But many times we have the question, okay, but what about Spark? Because Spark now is sort of the fact of standard when we talk about big data analytics, et cetera. So we did, of course, our comparison in the last years with Spark. We improved a lot our performance, also the expressiveness of our programming language. The architecture can be compared, actually. We have the programming model of combs as the Spark code. And on top of combs, we have developed a lot of being an algebra modules, algorithms, parallelized with the combs. We also have examples of application developed with the TensorFlow and executed with combs. And we are in top of, as I said, with different computational and data infrastructure. We did. And these results are published in papers. We did also comparison in my nostrum of similar implementation of data analytics blogs with both combs and Spark. And in many cases, as you can see here, we performed, we have performed Spark. So this is why we call this comparison David. This is Goliath. Of course, we are small compared to Spark in the sense of the distribution of the usage of the tool. But we think that we are doing good work because the numbers are on our side many, many times. So these numbers many times. What our success stories. We have a lot of users of combs. Mainly, we develop combs, we enhance combs, introduce new functionalities, through the requirements that we receive by our users in the project that we are involved in. But our strong, let's say, partners are from BSE because BSE is internal users of the departments. One of these is the earth science department and the life science department. Our main relations. This application, the NMMB is a model. The NMMB is a model for dust prediction in this being developed by BSE collaboration with the national centers with the NOAS in the states, with the NASA. It is a very complex application for climate modeling. Here we have a multi-scale online atmospheric chemistry model. Where in the end they model how the dust moves in the atmosphere and based on these movements they can predict the weather. How this dust, for example coming from this heart in Europe affects the quality of the air in Barcelona or in Europe. And this code is multi-scale in the sense that they can execute this simulation of different scales from original scale to global scale. So this drives the amount of computation to be performed. And talking about the requirements, this code at the beginning was a combination of external binaries and case simulation and Python of course. There are a lot of different modules that actually were in many cases a bash script. So what we did with them was to implement a workflow a complex workflow that from the programming level is easier to be read and to be composed and on the other side runs in a supercomputer in a optimized way. Just as an example we have we introduced the native MPI support in POMS based on this application of requirements. So now you can specify as annotation your code as an MPI. Specifying for example how many compute nodes you need for this part of the workflow and how many computing units in how many threads is inside each node. Based on this information comes from the users and allocates the proper number of resources where to execute the MPI part of the workflow. This is not clear but because it's very complex. This is the task graph. This is what comps executes. So you can say it's quite complex. There are several iterations there are parts that are MPI and they are non-NPI processes for post-processing and there is the final image generation because in the end they produce maps of the movement of the dust in the atmosphere. So stepping in via Excel I already introduced what we do in bioexcel as part of the work on workflows we together with IRB yet with Barcelona we define the set of building blocks as base for the definition of workflows for example for the molecular dynamics calculations. So the idea here was first of all a rational implementation of the task of the building blocks of an application in order to be interpretable. So we use in other implementation infrastructure and Gnostic and we use pycoms to implement as workflow manager to execute and orchestrate the execution of all these building blocks. So you can see here on the right is the sketch of the workflow in terms of building blocks and here we did many tests on different infrastructure via Excel from clouds to dockers and supercomputers actually now we are performing large test involving 40,000 goals in my Nostrum we are waiting for results we are adjusting things with the final picture and so coms is dealing with this kind of simulation where you have the massive protein mutation calculation so this means that each of these traits of this line calculates a different mutation of the proteins I'm not an expert of the matter so maybe I use wrong words but anyway from our side what we do is we calculate, we distribute this big part of the application that comes from different proteins into a mutation sorry mutation in the end we have this kind of graph so you have a thread for each mutation and this is the output of the of the execution of the workflow so I don't know if we have how we are in time but my idea was to maybe we cannot execute so as I said we are working a lot with the containers so we have a coms container doctor image and here for example we have an implementation with the Jupyter network of this AMD setup so this molecular dynamics workflow that we implemented in Bayer Excel and that we are going when validated we will also publish as a separate doctor container for distribution as such stories of Bayer Excel so here what I wanted to show is how the workflow is implemented quite a great use version of the workflow so but this is to show first of all that you can work with notebooks with Jupyter this is a very easy and nice way of testing and things so you can start a coms application as a Jupyter notebook using pi coms as interactive Python model here as you can see what we are doing is instantiating the runtime so this is what we will do usually from the command line the run coms command line so here we are saying that we want to execute the AMD setup application I am preconfigured the resource and the project files to use my local resource on my laptops so here we are saying here we are going to use we are executing two mutations each one on two cores of my laptop and here we are generating phrases because with coms you can have post mortem analysis of the execution you can have the bug etc so here we are instantiating the runtime here as you can see we defined part of the application as a task we are using the task annotation for the solvate PC function which is a wrapper on top of the gromax binary so here the users they define the constraints for example on this task that generates the final results we are defining a binary here these blocks are wrapped around binary files so using the binary annotation the user can specify this task it takes input a file and generates an output and this is automatically done by coms so here we say which is the binary and it is up to coms to run the binary without doing any system calls directly on the user code so here there is some problem the notebook to restart there is some problem I don't know I can show you directly maybe the results of this computation just to understand what happens so here is the final result of the application we are considering that it was a very simple and small execution these two lines are not significant from the scientific point of view because here we are calculated just a small fraction of the final result which is this big feature here so this one is not significant anyway what we calculated this is the real graph of the small computation this is what has been calculated by coms part of this the most interesting part is that you can see here a lot of dependencies and these are resolved by coms some of these tasks are NTI applications that are also completely managed by coms and here is the the real final result and going back to the slides so this was an introduction to coms what you can do with coms this is our group the workflow distributed completely led by Rosabaria and this is La Barta in the computer science department of BSE so now it is time for questions here in the on your webinar control panel maybe you can pass the presentation to Rosem again yes thank you Daniele we can stay on this slide we are waiting for questions from the audience thanks for the nice discussion we have questions from Adam yes thank you I was going to go back could I go back to the slide the star SS slide that compared coms with or MPSS one I was just wondering if you could say a little bit more you may have mentioned you seem to break up a little bit just at the point you were talking about it could you say a little bit more about the difference between the kind of way that you have to program for OMP SS and the way that you have to program for pi com the comparison between the memory and the files in particular coms is quite similar and also contributes actually to openMP so openMP also is a task level programming model and coms is an implementation which is quite similar and also interpretable with openMP so here you are working with small in the sense of duration of tasks inside one node of a supercomputer for example so here you are using tasks inside one node or across nodes of a supercomputer while with coms we are dealing with tasks that first of all can have a simple files not in memory objects because we are dealing with an application that doesn't work with in-memory objects but works with files objects and also we have to distribute computation and input and output data across nodes of a cluster of a grid so it's the size of what we are going to compute sorry just to highlight the fact that also we have an implementation of coms on top of coms so you can program an application this is something which is ongoing in a European project so you can have a high level workflow described on written with coms and one of the tasks can be an ombs application for example you may want to run an ombs application that executes on GPUs for example it's written in ombs but is a part of a bigger workflow so still you can use coms to orchestrate that part of the execution because for example with coms we don't go in the GPUs we are not able to instantiate threads inside a GPU so in this case we use ombs so the difference is the granularity level of the code that's nice so what do you mean by an object in the case of pi coms then do you mean like I hear objects an object of a class for instance of a class so it's still an in-memory object but it's something bigger this object for example in the case of coms we serialize those objects we send those objects in memory so these objects are wired to the network and executed remotely okay thank you thank you Adam I was wondering if if somebody wants to try out coms do you have any links to tutorials or some other material that they can try out I don't know if I put in the end check you have different things you can download coms next actually we will release on Monday for supercomputing every year we release a new version of coms for supercomputing so we release a new version 2.4 of coms so you can download the new docker image you can download also the packages for Debian etc we have a lot of documentation and in this documentation you can find a tutorial and to execute some coms example using both the docker image or we have also a virtual appliance which you can run with the virtual box so you can follow the instructions of the tutorial and you can try on your own coms applications thanks I encourage our listeners to check out and try coms as we said it's one of the platforms that will be working extensively in the future also in barbecue cell so we look forward for its application we are already past the hour so in the interest of time we should stop here and I want to thank Daniela again and can you change to the last slide I want to announce yes thank you so in a few weeks we have the next webinar from the barbecue cell series it's on MD benchmark which is a suite for well benchmarking MD simulations and for those of our attendees who are listening to this I would encourage you to check it out it will be very useful especially for those of you running Gromax or similar MD codes so thank you all and see you next time thank you bye


I'm Specialist Travis Lee. I'm with the 91st Engineer Battalion. I'm from La Porte, Texas. I'm a 12 bravo combat engineer. The roll for the MiClic is used for clear minefields. It's a very useful piece of equipment. It's one of the best pieces of equipment we have as an engineer in these heavy brigades. 260 pound rocket, attached to 1750 pounds of C4, 169 meters. So we can clear a very long distance of minefield without actually putting sappers in the breach. So it takes less lives out of harm's way and it's very productive. We can carry two of these on the Vic so we can clear 200 meters of minefield, reload them in 30 minutes. I'm proud of what I do because I'm an asset to the whole brigade. I help aid in mobility for the whole brigade to get to where they need to go to fight the mission somewhere else.


Just got done seeing the live action the little mermaid 2023. I know what you're thinking. Oh good I get to hear what a middle-aged guy has to say about this film definitely the target audience My family didn't want to go I have two kids and a wife all of them set pass because they haven't really liked the last few live-action movies And I have a chip on my shoulder about them as well That said if you like these remakes like Aladdin the Lion King etc. You're gonna like this I found it incredibly tedious at two hours long the originals only an hour 24 So they padded it out the new music.  Halle Bailey looks great in the movie. She sounds fantastic Scuttle's terrible. I wish scuttle lost her voice and not Ariel herself for me This was a complete waste of time But I review all the major movies coming out and if you want to hear my full thoughts check out my channel Adam does movies


But now I want to share something, insha'Allah, if you guys don't mind that I wrote after sometime experiencing this fasting thing as a Muslim. A day of fasting is a day of caution. Feeling fatigued from desire's exhaustion. Pass or fail is a matter of the unseen. So struggle I must to keep my record clean. A tune up for the soul more vital than a car. To clean up a sinful heart encrusted like tar. It's been a little while since I entered this state. I taste the bitter patience during my tasteless weight. The sting of thirst settles in as well as painful memories of sin. Realizing how much my soul has been ignored. Realizing that true hunger is distance from my Lord.   Realizing I have much longer to go than I thought. Realizing that purification is not easily bought but it is a gift for the sick and diseased. It is a gift from a Lord well pleased like one searching all his life for a lost treasure. Can we survive one second outside of his pleasure? Oh how I hope that he is pleased with me when I return. How I hope to be shown my mistakes now that I might learn. Learn to draw near like those that draw nearest. Learn to make a place in my heart where his remembrance is dearest. Thoughts crystal clear now to see the ways of error. Reflection upon that great day its rewards and its terror. Clear is the way of the rejecters who have fled from his life. Clear is the way of the reflectors who flow with insight. Increasing insertitude of the overwhelming event. Increasing insensitivity to how time is best spent. Followers of the prophets whose restraint gave them power. Manifestors of truth Satan can't devour. Oh consumers of the illicit no shame in how we're behaving. Is the permissible not sufficient to satisfy our cravings.  Accept this invitation to a pool fed by a river wider than milk sweeter than honey. For those whose Lord was God not sex food and money. Rejoicing that the life of this world is a goner waiting for that first glance at the one full of majesty bounty and honor. How joyful these thoughts as my heart seems to soften surely as it fasts more often.


Look at that beautiful fish y'all, it's awesome. Morning fishing freaks, welcome all back to the channel y'all. Glad you're here for my little few day fishing journey out on the road back into some of my old stomping grounds. And we're about to leave camp right now. I really haven't set up a tent or anything. I've just been truck camping. I'm gonna show y'all later today how I'm setting this up. Leaving this lake, we're gonna fish here in the morning and then we're gonna go to another lake that's close by that I've caught some hammers at. But I think I got one more day in me. So today we're fishing two lakes. We're gonna fish here in the morning because it's hot water and it's in the 30s right now. And then we're gonna try to get on, just to catch a hog this afternoon. She's a little bit steamy to say the least. It is really cooled off. It's in the 30s and this power plant on this side of the lake, the water's just hot. It's hotter than there obviously. 68.7 degrees. I haven't fished this area the last few days that I've been on this lake. So I'm gonna start out doing some cranking along a little rip-rap area. And then I'm gonna try some timber since it's gonna be a little calmer today. We still got some winds but it's not gonna be anything like yesterday. Yesterday was tough. All right, can you guys see me? You ready? You ready to see one? Let's get one on the line. All right, hopefully y'all can see through this fog situation. But I'm gonna start off doing hard baits. We're gonna go with the grande banger.   Although I lost my red one that was doing the damage. I always lean more towards, give me some of that wind and active bass rather than like a slower bite that I'm gonna have to really dangle on the fish hard in some calmer areas. Like if they're acting a fool and eating some baits in the wind then I'll battle the wind.  I totally, I totally dig that too. Jerk bait time. It's just a fish crusher y'all. It's good any time you have moderately stained to clear water. It's not good in dirty water but if you've got a lake that has visibility this thing all through the winter, early spring, spring, post-spawn even and there's variations of these. You can fish the ones that float on top. We don't make one, but ours is just a spin. But you know, you can fish in this pop water as well. It's pretty nuts. See some fish kind of scattered here on the rip wraps. Oh yeah. I should have caught one right there on that corner for sure. I will. I will get one right here. Here he is. My gosh. Speak of the devil. Speak of the basses.  First one of the day. First one of the day on the trusty, the trusty jerk. That looks like a hook in the hand situation. Go ahead and get the pliers on now. Just a healthy little young buck. See my guy. I feel like I'm in a sauna right now.  Here's one. We got him.  It's kind of sneaky. He's kind of starting to load up and get heavy on me. I've lost so many fish on this lake, especially on the crankbaits and stuff. And I tried switching up hooks and all that and vainly this lake and other warm water lakes. Their mouths get nice and soft, gooey.  I mean, especially in the summer, my gosh, but you know, in the winter, their mouths are cold and hard and, well, you stick them there. I mean, they're not, the hole's not getting any bigger.  Now I can see the tilapia on the electronics. Don't believe those are shad. They look too big to be a shad. They look too small to be a bass and they're spaced out more than a shad would be to switch up here. All right, get the recon. Get it down there and dig it up. Dig it up, dig, dig in, yeah. All right, now we're just looking like the floor is made of tilapia on the graph, which at that point, when you have that much bait in an area, it's like, why would they eat this, you know? They can smell. They know. Oh, we got something on the crank and it's a bass. Little rando rogue fish. Little guy. Whoever got my last bass boat got a lot of waypoints, I'll tell you. I've started fresh on my waypoints on this boat and I'm trying to go off memory. There's areas all around this lake that have like rock structures and stuff. And you know, I spent a lot of time islanding around finding them. I can't find them right now because it's so steamy. I can't get any landmarkers. You know, I can't even do it the old fashioned way. So I'm just kind of throwing this crank bait, trying to feel the bottom, but there's just a lot of scattered bass throughout here because it's a huge flat that's about 10 to 12 foot where I've been catching them this week. So, now it's a good, that's that perfect depth for them. A little bit of something there. There we go. Oh gosh, absolutely smoked. Fighting hard. Come here, buddy. Here's a better one. Don't move. You've been charged with wanting a chartreuse and blue crank bait. Anything you do at this point, I will give you a good sniff anyways.  I'm kidding y'all, I would not do that. Nice fish in the steamy bath. If you guys missed the first video, textbook cranking, having to hit the bottom to get bit, that was it. Still continuing. It's just, this is a little different. I'm literally cranking to try to cranking as using it as my GPS right now, trying to find some hard spots. If I find a really good hard rocky spot, I'm gonna throw that football jig or a Carolina rig on it. Oh, I'm in. That is it. That is the rock. We should get just gobbled right there. Just got to get in the boat position right here. I'd be offended if I didn't get hung up in this rock. It's so nasty. There it got him. Oh yeah. Had to do it, right? You had to, had to get it. Ah, decent one. There we go. Another solid bass. Flapping in the wind. I didn't think it was gonna be this windy. Oh, look, he's peeing. It's giving me a little extra excitement here. See you, buddy. Look at the chunkness of that fish. That fish is maybe 14, and he's like two and a quarter, two and a half. Probably two and a half in five seconds. Just dance, little turkeys. I think this will get down there enough till on that high spot, and it's just a big old presence. There he is. On top. Grande banger. Come here, buddy. You are dark. Beautiful bass. You wanted that little tilapia bluegill situation, didn't you? Look at that beautiful fish, y'all. It's awesome. A big one. Oh my gosh, I still got him. I still got him. Big head shakes. Good fish. Come here. Man, y'all. I was hitting those rocks. Oh, gosh, he came off right there. That got me. My rod, I thought it was hung, and then it just started moving. Hanging out in the fog in the wind has been worth it this morning. That last fish I lost was good on. It was in the four pound range. I think I'm gonna fish a few more areas on this lake before I head to the other one. We're still really early. It's like nine o'clock, so just try a couple things, and then we'll get on the road, where it might be really tough, but I feel like the chances of a big one are greater. Hell of a good warm-up this morning, you know? Getting that crank on? The last 24 hours, I've just been getting beat up by the wind. Still catching fish though. That's the important thing. We're gonna do a little offshore action. Oh, that is delicious on that three-ought. There's just a hard spot out here where I'm at, and there's some fish that are kind of moving through. Start a wee-ish little boggy here. Not big numbers, but I'm hoping there'll be a big one. That's what's down there. Little butternut squashes. Oh my, oh my, you're healthy. Woo, get it out.  Boop, boop. Might not be the ones we're looking for there. All right, this is my last stop right here. I've waited to fish this spot for a couple of days. It's always been a boat here, and wind was blowing on it pretty bad, so. Oh my gosh, the bass, or the bird has a fish. I'm so excited. That's a good one. I think I'm gonna end on that, even though it's not a timber tuna. I just needed a good ol' jig bite, you know? Goodbye, my sweet. We're heading to another lake. Another lake. The lady at the front, when I was coming into the park, she said, hey, they're catching them crappies. They're catching them crappies right now. Come on, camera, focus, I'm talking about crappies. Do some modeling around and see, I'm trying to just go after a whopper bass this afternoon, but right now, there's a man down here at the boat ramp. I just pulled up and he said, man, can you help me with my boat? It's out in the middle of the lake. It's somehow drifted off, so. Gotta go help someone out, and hopefully that's gonna bring us the good vibes, the good luck. There he goes, man, there he goes. He he he. My God. He was all the way over here. He's like, probably 800 yards from the ramp. The water's so low right now that when you back your trailer in, it'll automatically just kind of lift your boat up. So happens to the best of us. There's a drum on a crappie jig. That's ugly. So we've gone from mid-60s water to 55, which isn't terrible, quite honestly. I mean, this is not a power plant lake, but where I was fishing just a few weeks ago, or just a week ago, up in my hometown, I mean, it was in the 40s. Y'all, this is what I'm looking at all over the lake. Just, I guess they're gizzard shad, and maybe some thread fins, makes it with maybe some small white bass or something, but it is just, wow. There's so many little bait situations going on here. And it's a toughy McGee. I went to three different areas. I don't know if I'm seeing bass or not. I mean, it could be drum, it could be carp, and I was trying to find some brush piles to get on some bass and going on memory, because I don't have my GPS waypoints saved in this boat from years ago when I fished out here a lot. Even then, I just didn't find anything juicy, so I'm just gonna go to a, you know, standard winter time, early spring time, looking at areas, some rocks, rocks, I got deep water close by. Try dragging these rocks, cranking them a little bit, see if we can pull up that one big largey, but I'm definitely glad that I fished the other place this morning, even though I was kinda getting tired of it. It was just, it was fun. It was fun to bring some fish in the boat before I came out here back to, you know, stepping back two months, basically, in water temps and going back to slow fishing. We're doing it for the bigs, man. Gotta grind if you want the biggings. I'm giving her all she's got, man. It's not the juice, it's not the juice right now. So now I'm wondering, like, should I even fish here tomorrow? Cause it's gonna take me quite a long time to locate brush piles and things like that. We're going to take her to camp. Well, this one has proved to be a toughy mixucker. I'm gonna kind of split up my journey tomorrow. I might go to another lake, another lake that has grass. That's the savior, the winter early spring savior. I'm not too impressed right now. What's going on with this lake? So I'm just gonna take a breather on it. Now this is half the fun, traveling around in bass fishing, y'all. I am camping next to a lake. I've done this, well, this is gonna be my second lake now. There's parks like this all over the state of Texas that I know of. I've been to other states obviously that have great camping as well that you can get 110 hookups and stuff. It's like 30, 25 bucks to 35 bucks to get that electricity hookup. That way you can charge your boat. You don't have to run a generator. If you wanna go full off grid, you can do that too in state parks and stuff like that. But I like to do it all, y'all. And the simplest way to do it, if you got a truck cap, just sleep in your truck. I mean, I'm down with setting up a tent and everything too but it's just pretty, it's fast this way. Like if I wanna make the quick decision to leave here in the morning, not fish this lake, which I'm gonna do, it's really easy.  This is a plastic one, it kinda gets flimsy around the sides but I've got the boat cover in here, pull that out. I've got my firewood in here.  Or you could grill up some weenies or maybe some prime ribs, something tasty. I cooked some sausage on some coals the other night doing that. Of course you gotta have yourself an extension cord. So now I'm gonna show you how I set up my camp at night when I'm truck camping. So I'll take the crate out. Don't wanna blow the back out. I'll blow the back out on a big bass but not on video demonstration purposes. We can go plug that into 110 or we can plug it in to the jackery. So really the only two things I have left in here are my bedroll and my food, my eat kit is what I like to call it. So I've got freeze dried meals in here. I've got breakfast style. I've got my favorite chili mac. I've got a bunch of those. Keep quick oatmeal, instant oatmeal and coat with hot water. Emergency, gotta keep your vitamins and minerals up when you're on the road. I have a tendency to just eat a lot of meat and pretty much just meat with no other vegetables and minerals and stuff like that. So I like to take these, keeps you healthy especially when it's cold. Examples of other foods that are storeable. I got pistachios right here. I wanna get my snack on. Bucky's beef jerky, Triscuits. These arguably pretty stale at the moment. Then I've got some healthy snack bars. I like to carry around these RX bars. Stephanie recommends these. These are pretty, pretty simple stuff and they're not a whole lot of junk. And then if I wanna treat myself to like a honey stinger or something like that, I got almond butter. Almond butter, put it on a honey stinger. Waffle cake, ee! Special treat, y'all. And I do keep some of these wipes right here. One of these called probably a bunch of brands, make them but they're biodegradable wipes. So if you wanna feel fresh before you go to bed, you can do just a body wipe down, biodegradable so you can also use it on the rear if you need it to. Nice, comfortable alternative. And while we're in here, let's pick out our meal for tonight. I'm feeling lasagna with meat sauce. I'll also carry meat and stuff in the cooler. I'll go through that. Maybe keep some sandwiches, just whatever you want. But I always keep this just in case there's like nowhere to get food or that stuff can expire, that's in the fridge. Maybe you ran out of ice, forgot to plug the medican or something.  So it keeps you going, keeps you fed and you can literally keep it in your truck, not have to worry about it. You know it's gonna be okay. Boy, I miss the sound of that train down here. Man, whoo! Love being back down here. And then in this other bin, I keep my food kit or my food cooking kit basically. So in here, I keep a spork and a little napkin, a little layout, kind of like a dinner table cloth sort of thing. I got a couple of cups. I got a 550 mil and a 400. If you don't have sriracha sauce or some sort of hot sauce, it could save you. On day four or five when you're out there and you're like, you know, I just need some flavor, something like that, gotta have it. I learned that backpack hunting. Man, some Taco Bell hot sauce. Woo! Tastes like a fine wine after many days. And then I've got my burner and I keep multiple propanes in here.  I've actually got a Coleman up top here. So if you wanna break out the big guns, we've got all that stuff. We've got extra jumper cables, ratchet straps, anything, you know, tools, stuff to fix stuff when stuff happens. Cause stuff does happen when you're on the road. And now let me take y'all into the bedroom where the magic definitely doesn't happen. I usually take some of the stuff out of the truck and I throw it up there at night just to keep, you know, raccoons or whatever and just get it out of the way. If I don't want it on the ground, you know, creatures getting into it, especially my food, just don't forget about it. Once you put it up there, done that once. I just unbuckle this, that's the tail end, push that out. My Chevy here, she's about a foot short. So I do have to leave the tailgate down and I close this when I'm sleeping. And I need to figure out a situation, a little deal that I can put like a mesh screen or some sort of cover that can just fall down here. Maybe it has like a keel or a weight on the bottom to just keep things out.  But the big thing is mosquitoes. Don't have to worry about it right now, but having a mesh screen right there and then you can open up the side screens of the truck hat, boop. So the bed roll, this is made by Campus Cutter. I've shown this in some of my hunting videos before, but all you fishing freaks out there that are looking to do some extended travel fishing, here you go. This thing is actually waterproof. So if you wanted to sleep outside with it, you could, but makes the perfect truck bed bed. There's a foam pad under here. That foam pad is pretty thick. I can sleep on my side. My hip bone doesn't dig into the bottom of the truck. I've got a zero degree bag. When it's in the forties, it's perfect. If it gets in the thirties, like low thirties, brown freezing, it's a little chilly. I'll have to put on a base layer. Got a pillow from home and I carry a camp pillow as well, like a small one. Best thing about sleeping next to the water is the travel time to the lake is none. We are gonna sign it off for today, y'all. And the next video is just gonna be me going to another lake, just trying to figure things out from scratch, just kind of in a half day. So I'm heading home. Tomorrow I'm gonna head to the lake on the way back. Just gonna try a variety of different things, see if I can get on a general bite and hopefully get a big one. I'm yet to catch a fish over five in the new year. I love me some fishing, y'all. I get excited at the beginning of the year, just thinking of the whole year and all the fishing opportunities that are to come. So anyways, I'm amped. I love it, y'all. I'm gonna sleep next to the fish here, next to the water and get up and do it all over again. So stay tuned for the next one. God bless you, we'll see you soon.


What's up everybody, Jason here for jasperjastbeakscasebreak.com, 2020 Gold Rush Premier Baseball players, six box casebreak random teams number two just sold out, and again this is a early bird break as well guys, buy one of the first 15 spots, get into the winter free spot in the break. And again guys, this is a buy back, new release from Gold Rush, these are the potential hits you could get out of these cases, excuse me, very very nice stuff, so there you go. And again, Joshua they're here for the early bird customers, we'll paste the name here, and then randomize the names and teams. So let's roll, we got ourselves a three and a one, four times, good luck, one, two, three, four, we got Calvin down to Dario, actually sorry what am I doing, no, sorry guys, four times, this was for the early bird, Calvin, Michael, you got an early bird spot, there you go, congratulations man, now this is for the list, four times, one, two, three, and four, five, four times, Chris Miller down to Nick Koba, four times, teams now, one, two, three, four, Arizona D-Backs, San Francisco Giants, all right so Chris, you got the D-Backs, Bradley with the Blue Jays, Shannon with the Cubs, Barry with the Padres, Matt with the Brewers, Shannon with the Rockets, a Rocky, sorry, and Yankees, Richard with the Red Sox, Stacey with the Dodgers, Calvin here, Free Spots Houston Angels, Joshua the Ace, Shannon with the Cardinals, Zach Paul with the Twins, Edwin with the Mariners, Marco the Phillies, Matthew with the Rays, Matthew T, TJ Pore with the Reds, Nick Koba with the Indians, Shannon with the Nationals, Dario with the Royals, Calvin with the Tigers, Jay with the Pirates, Dario with the Marlins, Oliver Sororo with the Texas Rangers, TJ with the Angels, Anthony with the Rays, Anthony V with the Mets, Barry with the Orioles, Shannon with the Reds, White Sox, sorry, Nick Koba with the San Francisco Giants, so if anybody would like to trade, I will give you guys a quick minute, if not, stick with what you got, quick little buy back break, boom, boom, all right, guys, any trades? It has never taken more just to get to this point, and this is the rest of the trade. All right, show them the clothes, guys, all right, it's a case, guys, it's a lot of this dust, man, look at this, I can make like a little small little thing right here. Rippin' Bowman in prison has a lot of these little small dust particles. All righty, here you go. Juan Soder to 50, 2019 Topps Gypsy Queen, how about that, it's a beautiful looking card, that wasn't a preview, was it? No, not a preview card. There you go, Washington Nationals, Shannon, there you go, very nice. And how about a Vladdy, 20 out of 25, that's a rookie there from Diamond Kings, Toronto Blue Jays are going to Brazil, that would have been a great little thing. Wow, how about this, how about a little fabric to the game, YD4 for the Yankees, five out of five, this is an old school Donner's, Donner's Playoffs, very nice, Yankees, another Yankee, this must be Aaron Judd's short print, I'm assuming, has to be, maybe, thicker card, maybe not, oh actually sorry, it's at 87, maybe not, I don't know what is this one, there you go, out of 87, another one there for the Yankees, another Yankees box right there. CeCe Sabatia, three out of five from definitive, Cleveland Indians, Nekoba, nice, 9-5 graded, 13 out of 83 from Top's Transcendent, that's a Derek Jeter for the Yankees, little base. And we got rookie signatures, outfielders, Eloy Hemines, 18 out of 25, out of Chicago, rookie there, White Sox, that's from 2019 Leather and Lumber, Chicago White Sox, Shannon, more than a Yankee, I mean Shannon did get a lot of spots, but this is more of a Shannon breaker here, Boba Shed signature series, rookie there for Toronto, Bradley with that one, that's 2020, very nice, two more. And Daryl Strawberry, two out of five from definitive, Mets, New York Mets, that is Anthony, and we have a out of 25 patch autograph from Inception, Kevin Beechio, there you go, another one for the Blue Jays, alright last box guys, good luck, and we got a Roberto Clemente piece of the bat, game use bat, Pittsburgh Pirates from 2001, very nice Pirates, Jay with that one, it's been a lot of Yankees in this one man, it's been a lot of Yankees, last break there wasn't that many Yankees, I don't remember, a lot of Yankees in this one, and for the San Francisco Giants at 83, original sketch, reproduction from Topps Transcendent 2018, that is Willie McCovey and it's a 9-5-10, Giants, Nick Hoba, actually this Roberto Clemente is a beautiful looking card, Topps Tribute Baseball, Perennial All-Star Edition, sick, alright guys well there you go, remember this one actually wasn't much nicer case than the first one we did, first one did have a lot of those in-person authentic autographs, oh some of them were really nice with each year old stuff, but this one did have a lot of nice hits, a lot of nice ones, so there you go guys that was the break, this was Gold Rush Premier Baseball Player's 6-Box Case Break, it's the final scene number 2 on JaspysCaseBreaks.com


Hi you guys welcome back to the royal wedding so long This is week four where we are going to be making The bodice of views C and D I've got my pattern pieces all laid out on my fabric For everything except for the front bodice pieces because they are cut on The single on a single layer of fabric because there's one for the left and one for the right So I just wanted to show you how I laid out my pattern pieces here mostly I followed the layout Suggestions on the pattern instructions, but since I am not making the sleeved version I Obviously did not have a sleeve to cut out so Instead of placing the sleeve right here at piece 11 Okay, so yeah, that was my fire alarm Everything is fine. They were just doing some testing. I guess. I don't know anyways back at it. So What I was saying is that since I'm not making the sleeve Obviously, I don't need to cut out the sleeve pattern piece number 11 So what I did was is I put nine here six here seven here And then in this area is where I moved the bodice so that I didn't have to do this like funky half-fold on this section So I put the bodice here and then I moved eight to go this way and then ten is right in here So it's all still in like a nice little rectangle leaving me plenty of space for 14 and 13, but I just have the Pocket piece on here and the back piece on here. Also, I just wanted to say typically I cut two of the pockets out of the Fashion fabric and then two of the pockets out of the lining fabric. So when we get down here to the lining I'll add a set of pockets to this somewhere. I just don't think the pockets need to be All four out of the fashion fabric. So I just don't do it that way myself But anyway, so I have this all cut it or I have this all laid out Like I explained here's kind of where you can see the changes I made with adding the pocket Where the skirt is positioned again? Paying attention to that kind of strange Green line and then I moved the back bodice piece there and then Everything else is as the layout suggests All right, so I've got my bodice pieces pinned onto my fabric and I just wanted to show you that well Don't be alarmed. This is the selvedge edge when I laid it on a single layer. It was easier for me to lay it Longways with the selvedge edge on each end So I don't think that I have just like given up on following the grain line not true But I did want to point out it's very little The instructions do say that when you're cutting on a single layer Pin the pattern on the right side of the fabric on some other patterns They will indicate right side and wrong side of the fabric for the Cutting layouts as well, but this one does not follow that because the If the fabric is white then that's supposed to indicate the wrong side So it can be a little bit confusing, but I went and found this little tidbit here which indicates that Your fabric should be facing right up right side up and then your pattern piece should also be facing Right up as well. If you did this wrong you would have The Right side would be the left and the left side would be the right So it's not like a end of the world kind of thing. You could definitely make it work Your bodice would just cross over backwards Um, maybe that matters. Maybe that doesn't but to prevent that from happening and to get a perfectly looking Garments just like the pattern envelope place your fabric right side up All right, so our bodice piece with the pleats does have a whole bunch of Pattern markings that we need to trace to the wrong side of the fabric There are a few ways to do this the way that I find to be simplest is to get some of this Carbon paper Comes in different colors. I think mine came with yellow blue and white Maybe and then they also come with these little tracing wheels So we have one that serrated and then you also have one that is smooth And basically you just lay the carbon paper underneath the pattern or underneath the fabric and then line up your Marking tool and you just follow the line all the way down.  I've also done the same thing on the skirt So you'll see similar instructions there for that and then when we get over to the bodice left I'll also do that again for the What's it called a dart? Also again for the dirt and then I like to trace over the Center front lines you definitely don't have to but I like to use those as a way to just make sure that my bodice is Lined up as the pattern designer intended Okay, so now we are going to be cutting out our interfacing I think that the midriffs are pretty self-explanatory.  So that's the midriff front and then here's my upper Back bodice back that you can't really see it But there is one traced and then this is mirror image of that But the important part here is the interfacing pieces for the Bodices because we have two different pieces one left one right for the bodice You have to pay very close attention to how you cut out the interfacing because you don't want to cut this out with the glue Facing the wrong way So you have your right front interfacing piece, which is piece number 16 face up on The glue side of the interfacing So the glue is face up for all of these glue is face up Right front piece is face up and left front piece is face down So if you want to check my work, you just place your interfacing right side or the glue side up Then you lay your fabric on to it. It doesn't have to be like very precise because this is not actually where you're gonna lay your interfacing piece, but then you lay it on there and you go. No, that's not the right way Is this the right way? No, and then you go. Oh, okay There's the shoulder piece up top and matches perfectly And I need it to be glued to the wrong side of the fabric So I need it to go just like this boop and I move it over just like that Same thing with the left piece. You take it.   You might have a hard time seeing them on the camera But they're there I can see them all and the easiest way to do this is you're just going to pinch So there's a set here. There's a set here and there's a set here Don't forget the one that's like hiding underneath your interfacing if you have thicker interfacing than me You might not be able to see it and you need to retrace it But so you take the first set and you just pinch them together like so and you're gonna kind of follow this little V that is cut out you want to take some pins and you're going to mark through the end of one and Make sure that it lines up with the end of the other one and if it does pop your pin in and I'm going to put maybe I don't know three in here and again Put it through the line on this side and make sure that it lines up with the line on this side if everything is Lined up properly it should and Then do one final one. You can see the tail wants to slide away here. So do one again at the bottom Again putting a pin through the line and that is off pin through the line here and then Let's see there we go so Like so and then we'll just go vertical with this one And so when you go to your machine You're gonna sew from here all the way to the end back stitching To lock that into place and then you're gonna do it two more times once for this group of pleats and then once for this Group of pleats and then we'll have our pleated bodice. All right, isn't that beautiful got all the pleats done You end up pressing the pleats on the inside you press the pleats toward the side seam And then you put in a little basting stitch down here to hold it all in place But it looks so good. Ah, I love doing pleats and darts because it finally starts to give two-dimensional piece Some shape and starts really coming together. Okay, so the next step is for us to actually attach the Back piece so you need to find the one that matches up to your Bodice which that one didn't I'm just trying to match the shoulder and armhole arm side Okay, so here it is. So now you are going to sew the shoulder seam up here as well as the side seam down here, okay? So now we have one complete right bodice for the outside now We are going to move on to the left bodice Which is right here Basically what we need to do for the left bodice piece is put the little dart into This piece we traced it off whenever we were cutting on our fabric. You can also see the interfacing is Adhere it on to here as well. So this is a very similar technique as to how I did the pleats before you just want to pull these two legs together and get them somewhat matched up and then you put your pin through one of the lines and Then push it through the other line So the two lines are going to match up all the way down again I'll probably do about three that were a longer dart. I would do more But I usually do three and then when I get to the tip of the dart. I will just put it Right there at the end just so I know that's where it's ending So we're gonna put this together and then similarly to the right side We are going to take the back bodice piece and attach it At the shoulder seam and at the side seam. Alright So at this point we have our entire upper bodice completed The instructions are going to tell us to go ahead and do the lining for each of these pieces But we are going to postpone that Simply just to try and keep all of the videos of the sew along kind of organized So if you can bear with me and not follow the instructions completely I swear we will have a gorgeous looking garment at the end of this all the same no matter what order we do the Construction so the last part of today's video is going to be just about sewing the midriff together we've already done this in the Bodice view a and b video so you might have seen it already, but if you didn't you just simply take your Midriff pieces and you have to remember that the curved line faces up toward the bodice Once you've got that down then you want to find your Back pieces that have little notches and match the notches to each side seam Like so And this one's over here Like so so you'll have your entire midriff piece completed as well All right, so this is where we are going to stop for today. I think it's looking really adorable We're not going to attach the midriff to the bodice yet because we're going to install the Attach the lining to these pieces first and then sew the lining into this seam So it's nice and beautiful Whenever we go to finish off the insides as well. So yeah, so this is where we're going to stop for today I'm really excited about it. My lemons are making me so happy Let's see so Next week we are going to be doing the skirt. The skirt is the same no matter which view you're doing So follow along with that whether you're doing view a and b or view c and d and then in the week following Is whenever we'll get the lining all attached. I have a bunch of tips and tricks for the lining So you'll want to make sure to watch that before you attach it. So patience is a virtue. We will get there I promise In other royal weddings sew along news be sure to follow the Or join the Facebook group There's a lot of activity going on there now a lot of people have decided on their fabrics and which pattern They're going to use So there's just lots of conversation and questions and it's just kind of a lot of fun to participate in that kind of community And then if you are posting on any of your socials to or about the royal wedding So along be sure to tag it with royal wedding sew along so that we can all see What you guys are doing and how you're progressing and everything else But that's going to do it for week four for me I will see you guys back here next week for week five where we'll make the skirt. Bye


What comes to nursing school explained in this video on donning sterile gloves. Sterile gloves are needed and mostly come in the packages of when a sterile procedure is needed. This might be a catheterization, a wound change, a dressing change as well as maybe a central line dressing change. Those are the most common ones that we'll encounter. Now in these procedures typically they'll come in kits with all the supplies that you need and then also a package of sterile gloves that is provided in the package with all the other let's say dressing supplies. So it is very important to know how to apply the sterile gloves not only within the sterile kit but also separately because you might also need to don sterile gloves outside the packet. And from my experience I see students struggle with the application of the sterile gloves and then when it comes to let's say a skills evaluation they get very flustered and frustrated when they can't put on the gloves appropriately and then the skill evaluation is more difficult because of just that one skill that is just part of that whole skill evaluation from let's say a catheterization. So first of all make sure that you know the correct size of sterile gloves that you wear. They come in half sizes so let's say a six, six and a half, seven, seven and a half and so on. The higher the number of course the bigger the gloves will be. If the sterile gloves don't fit you appropriately it's going to be very difficult to maintain serility throughout the procedure.  Otherwise it's going to be very difficult to slide the gloves on and it could be a very frustrating experience for you. These gloves here in particular are a size seven. They fit me pretty well. And then always look on the front and see what material they are made of. Most gloves now come latex free and some are still powdered and some people are allergic to the powder that the gloves come with. So make sure that you read the label of the package to see what they're made of and if there's any powder and of course if you have any trouble with those materials then make sure that you use another one. So first of all let's unwrap the package and you can take the paper wrapper out. As you can see right away it tells you cuff end so this is the part of the wrapper that you should put towards you which is the cuff that will be right at your wrist. So you will open this package up and try not to touch anything within where the gloves are. Again it's very nice because it tells you left and right so I'm going to set this up right in front of me with my left and right hands. You can also see that the package shows you what side the thumb is in so the gloves will actually be in this located like this inside this wrapper. Now because they are folded in a certain way it might be a little bit difficult once you open this up. This paper flap tends to want to come back so I recommend just kind of folding it the other way and folding it down. That way it has a tendency to stay up better. Then the center here has this nice fold here with the paper where we can just reach to it from the outside and open up the gloves. Now one of the most important things to remember here is that whatever part of the glove will be in contact with your skin is the one that you will really have to worry about. What we have to worry about remaining sterile is whatever is going to be on the outside towards the patient. You want to start with donning your non-sterile hand first. So in this case I am right handed so I'm going to grab this cuff here on the inside. This part will be on the inside of my hand so I can't touch it but I cannot touch the cuff on the other side or the fingers. So I will slide my non-dominant hand in there knowing that the thumb is lined up this way like the wrapper told me. Then I can pick the glove up off the wrapper and be careful that when you are trying to wiggle your fingers in there that the loose ends of the fingers don't touch anywhere either within that one inch margin of your sterile field or outside the sterile field. So what I like to say is bring it up to about chest level that way you're not in danger of doing that. So now I've slid on my non-dominant hand. I eventually am going to want to straighten out this cuff before right now. I'm just going to leave it as is because I cannot touch the inside of the cuff right there because my right hand is currently not sterile. Now this hand is sterile and these fingers are sterile so I can touch this glove wherever I like. But I have to be careful that with my sterile glove hand I don't touch my non-sterile hand. So I will grab this right glove here at the cuff and actually slide my fingers into it so that then once I slide the glove on I won't be in contact with my sterile glove and my naked, my ungloved hand. I will slide my hand in here and again make sure you have the correct size otherwise it's going to get difficult. And then also make sure that you know where the thumb is and if it happens to be a little discombobulated that's okay. Just stay on the outside here and make sure you don't touch the inside and just wiggle your fingers in there. It might not be very pretty but this is a good size for me so my hands are now in here. You can see I have the cuff end here sterile to sterile. Now what I can do is I can maybe wiggle the fingers down so that they fit better and now I want to address the cuff of my left hand. So with my now both sterile hands with this right hand I can slide inside the cuff here because this is all sterile and slide the cuff up my wrist or forearm. Now both hands are sterile if I was to move on to a procedure and I need to get rid of this wrapper. I can touch it here because the inside is still sterile so I can get a hold of it like this being careful that this doesn't touch me and then just throw it away. So these are my sterile gloves now. Make sure that you don't drop your hands below your waist level because below waist level is also considered non-sterile. And as soon as you do that then you have contaminated your sterile gloves and you would need to do the skill again. Thank you for watching this video on how to download sterile gloves. Please also make sure you watch the other videos in my skills playlist about catheterization for both male as well as female patients, wound care, dressing changes and any other skills that you might find helpful. Please give me a thumbs up if you've enjoyed this video. Follow me also on Instagram for quizzes and study tips and I'll see you soon right here on Nursing School Explained. Thanks for watching.