So welcome everyone. My name is Victor and I work at CSCS, the Supercomputer Center on Switzerland and I'm part of the user engagement team and support scientific support team. So I'm a PhD in Chemistry, so I'm a guy that does the support for scientific applications and we there we care a lot about doing guaranteeing that scientific applications are running perfectly in our system. So for that CSCS it spends a lot of time and money on getting regression testing of our scientific applications, right? So before I actually talk about what's reframing and what we what we have done as a tool as a framework to guarantee this quality of service for the applications that we run in our systems, I want to give you a bit of the background what was before at CSCS before we started to reframe. So CSCS is head by the time very monolithic script that would do all the testing of applications through shell scripting. So we had a huge it was well written for sure but was like it's a bit difficult to maintain scientific software in shell and the testing. So we wanted one day they decided to change the the scheduler on Cray from API to API run to this learn native's learn and then we had to change a lot of lines inside the shell scripting. So it was a bit maintenance of how to change and if there's a bug it won't script because we saw oh we are checking the the the way that we're doing the testing it's a bit wrong we had to change it then we had to go to all of the tests and end again. So it was a bit of tedious task and difficult to handle. So then we came up with a new solution that's called reframe and reframe is basically based on Python so it's a framework that we that we want to leverage all the software or scientific software methodology so I like OOP right object oriented programming and also the fact that we had to change this scheduler lines from all our tests we start to say you know what I think we should be abstracting away the system abstracting away the module systems abstracting a lot of things so we can actually focus on only our tests right we should not be focused on on details of the system and we do support different systems that are conventional linux boxes or from to create systems so highly customizable customizable systems until basic ones or generic ones standard ones so it's a bit difficult to actually maintain and if you don't abstract away the system in your regression suite right so we want as reframe to the user to be focused on all the logic right if I want to write a test for gromax for instance I want to be focused on my gromax run I don't want to be caring about how the the job will be scheduled how it will run the system which partition it will run I really don't have to care much how to submit that partition I just want to say I have a gromax that's gpu I want to run a gpu partition of pitch time if I don't have a if I cpu only version I want to run on the cpu partition of pitch time that's it I don't want to say how does I can achieve that the that partitions right so we started reframe reframe it starts to get momentum and was starts to be developed on march 2016 now we are on release 2.16 and we have like 18 forks and 32 star gazers and still counting right it's a bit difficult I changed the numbers a bit before because it was 31 in my slide now I have 32 so it's all the time changing and the the reason why I like so much the reframe is actually design goals right that's what drives me crazy I'm amazing design goals we have first the first one is productivity as a chemist right I want to write my test as productive as possible I don't really want to care about all these details of computer science I want to be really really fast on writing my tests and I want to run them as fast as possible so and I also don't want to care much about the system right is am I running is learn am I running pbs why do I have to care why why do I have to care if I'm running lmod or running tmod or tmod 4 what are the details I don't really care much about these details too so for me I was hired css and for first week I got the task to write jobs to write tests on reframe and then I start to write them and was really really fast to start using it and I could like the first two weeks I think I wrote like 132 tests was really really fast so that's what I really like about it so really fast to use so really fast to integrate and from that time it's we have been running reframe daily we run the reframe daily no productions we have never seen any let's say stress the stack race of reframe reframe is very robust right so we have a very very written code the design is really really well done and it's that the team lead for for the designers in vasiles and he's really keen on on guaranteeing that we have a good a good code for reframe so what does reframe as a framework support right the first thing that also Kenneth was talking about easy builds that we do not have python dependencies right I mean we have no external dependencies on python just if you have a bare python you can run reframe of course it's python 3 based so you do have to have a python 3 installations so if you want to run a unit test of course you have to style something for the unit test as byte test but if you don't want to run a unit test you can have your python and start running so it's really it's really good to have that and for the way that we as a perspective of the user who is running right in the test we have complete separation between what is a system what's a program environment and your test logic so we're going to see the api going to show you later how it's going to the division and this this thing makes your life very very easy because then if the user doesn't have to care about that then the user just just writes the I want to run a program environment gnu which means I want to run gcc and I want to run with slurm and then my life is is done so I'm going to load the appropriate gcc compiler and then run with slurm of course that requires some logic inside the framework so we leverage we take all the pain for guaranteeing that inside the framework and then you have to tell us what does it mean to have the the program environment gnu right where you can find the module what's the module there for that so that is also a user has to configure it so it's not something that you download and you start using it as was but you have to get for your system how to set up some some let's say mapping between the system and the what we expect right so we do have some sort of cycling so I can say my test for gromax if I have gromax installed with gnu intel pgi kray I can go and say I have this test and I say I support this program environments gnu blah blah blah and then reframe automatically generate different tests for all of this so we're going to cycle through all the program environments and generate tests and I can test all these installations of independent installation of gromax for instance and then the the fact that we not having like some json file to define your test but we leverage python it means that you can be really clever or how you generate the the the the tests so you can leverage the entire python infrastructure to do that so these allows us to do some easy customization so you can have really easy factory designs or you can spawn a lot of tests and you can also do a lot of flexible flexibility in organizing them because you can have a hierarchy of tests and all this kind of stuff for us on the user support perspective of reframe vocabulary let's say we do have something that's called sanity checking and performance checking right so when we talk about in general to the operations people and they say are the system saying but then the system saying means the system producing correct results and it's performing correctly in reframe perspective if the test is saying it means that the test is producing correct results and if the test is performing it means that the test is getting the correct performance expected performance on that system right so we do have this separation and then there we allow the user to customize the way they extract what is saying for them and what is performing for them right so if i have my code like cp2k that gives you time as as your measure of how much it will run so i can get go there and look at for the time if i have grow max that gives you nanoseconds per day for instance i can go there and look at the nanoseconds per day so we have this flexibility of looking what does performance means for your test for instance like we have a hello application i can actually see the performance what does performance mean if you're compiling hello world right it's time taken to compile hello world for instance we can decide what your what is the you can decide yourself is as a the guy writing the test what's the logic like what's the the real thing that you mean by performance and we as a when you run reframe it you can easily see the progress what's actually happening so you see what is i will not show you later what is being running you're going to get the performance uh progress of of your test and also we're going to get summary what failed what we didn't fail what passed we didn't pass and by us failing means you either failed the sanity or you either failed the performance right so that's the that's the our concept so we're gonna we're gonna see at the end of the test of reframe this summary what has failed we also have an amazing logging support so it's it's is incredible you just like write i want you configure to say i i want to be a fire or i want to print it to the stood out or i want to do gray log and then it just works so you're going to send your files to gray log you're going to write fire you're going to print the screen it's going to be uh boom yeah so so it's just it's simply it's it's it's it's amazing though the way we have done that it's it's really nice and then we have a really that's one thing that i like a lot to work in the internals of of the of reframe you get to have a really clean api so and we we tend to make the api very stable so to guarantee that we don't do a lot of changes and but we keep adding functionalities another thing we do is basically currently we support slurman pbs but reframe is a open source project if you feel free to contribute to other schedules if you if you like i'm gonna we will love to increase this this list we also have support for different launchers so s run npi run npi asak we also support no launcher you can run your your code directly without any launcher we already support t-mode for l-mode and t-mode so any any environment tools available in the market we do support so we are ready uh we have like build systems backends cmake auto tools and make we also planning to do easy build n-spack build system but we didn't do that yet because we need to figure out better the use cases so we want to make guarantee that we are covering as much use cases as possible in a simpler way because on reframe we do care about the users story right we when we we're gonna see the test and for us it's all about writing the test if the test is becoming difficult to write uh that's not a good design so we go back and then we we draw again and we draw again we draw again you get a really easy to use for the user to write tests right uh because as we had heard before or yesterday someone said well i'm not really good on python that's that that's what we want to to to guarantee here that you don't need to know a lot of python just need to know the basics you can copy uh a basic template and changes slightly small things and you get your test because you want to guarantee that everyone from scissor the means who don't are not really comfortable with python to to computer scientists who are developing their code and doing want to do ci with them can can do with reframe so we have a signal execution of tests which means that we take the test we submit a lot of tests to the to the queue up to a certain amount if you want or you can say that the amount is limited infinite and you can submit everything to the the scheduler and when it finishes we're going to reprocess so it's a really really good way of taking making use of the scheduler to submit different jobs and being doing parallel executions of the jobs and we claim like the open hpc people that we have an extensive documentation so we I think we have a covered everything we in vazidis is really really how can i say uh tough on that so we never make a release if the feature that we want is not documented if the feature is not documented we don't have a release so and we want to have leaders because we have the bosses asking for releases so you have to write documentation together with the with the the feature so I would say that a majority of all the features actually are covered by the documentation in in reframe so we have many more things that we support please take a look at the github the project is an open source project anyone can contribute so how do we how do we envision the this architecture how can you abstract away all all all these so we have clear defined a regression api so what's the user who's writing the test sees right and we also have seen a front end api so let's say the people who actually running that right running the reframe because on on cscs we have this separation we have the professional people who are actually writing the tests of people from the support in general and people who are running the tests on maintenance for instance other people from operations these are the means so we have these these two classes of people right the dreaming people they basically just have to care about the front end flags and in general we we try to make a very simple simple interface for the common line just the miners are and it's running if you do minus value list the tests so it's really simple you can do minus h get the help so where we support a lot of a lot of common lines so we try to get the the dreaming people really really keep smiling them and then for the guys who actually develop in the test that means me right we want the that they write as me as less code as possible and be as expressive as possible so we take advantage of of many abstractions from from python and also in practice what I have to do to write my test is write a simple python class and inherit informed regression test and after that I am already have my test so I just identify I can customize it to get actually what I want the modules that I want the program that I want if I have to compile what is the source code if I want to get a make file what's the make file so I can customize it and then voila it just compiles run submits and runs your test you can analyze it in performance I'm going to show you later how it looks like so here the writer sees this thing right so we have an api that you allow it to have some system abstractions and some environment abstractions right and what you call system abstractions is basically the schedulers and the lounges right so this is related to the system itself and the environment abstractions is module system and the build system by the build system is like make see make environment modules by the team model so we don't you you you have access to these abstractions but you don't really have to to how can I say define if I'm going to be pbs or not or really go deep into the api so it's a bit packed in general doesn't look like so packed they have to cut the lines I mean to remove some lines you make it fitness line but this is as I told you is just like mark some you decorate the test if your class python class and you inherit from regression test it means that you have a simple test you can change this you actually going to show in the next slide to get a factory of tests so you can spawn several tests and then basically you get a description you say I want to run on the gpu partition of pitsteins and then I can say I want to run this test with you know kray and pgi so we're going to compile my kuda code because it's not q right here with these three compilers and we frame automatically detects that this is a cu right the kuda so we're going to call nvcc on this and then we're going to say the system the build system single source we're going to take this single source take the flag I'm going to execute the the code with this parameter so minus so sorry if there's a kutable with four thousand ninety six and a thousand I have to load kuda two kids or pitsteins to have access to kuda and then I can say the number of gpus per node I can get the part and so I'm looking at all of the output of the of the program on the screen to say time for single if I have this thing it means it meant that it has passed the performance is get you get the performance in gigaflops and then I can say I'm expecting 50 for on that case I'm expecting 50 gigaflops for that particular particular application of course these numbers are it's just like a dummy number that we've given here right and you we also have allows you allows you to we added some other things to guarantee the maintainability or let's say the usage and report of problems so we have a maintenance list so you can put your your name here so whenever you get a failure the report you say hey please contact blah blah blah blah and then you can put your stuff here so you can contact the people so we also have what's called tags because on cscs we do write tests for different setups so we do tests for production cases so we run daily uh we have maintenance tests so you're doing maintenance before and after maintenance and you also have diagnostics so when a node goes bad we're going to run this test to guarantee that the node is back it's uh in a sane state so this is a really simple case but this a real case where we have the code called arbor that's also a code that's developed at cscs that's neural I think neural network analysis and this test requires cmake so you can write cmake and you give some parameters for cmake and then you're going to compile the code and run the code and but because this code actually has different compilation conditions so you can do a serial code npi code blah blah blah blah you can actually import from the base test the npi version of the code and then you basically just say you add in the missing flag for cmake and then what's going to happen you're going to take advantage of the entire oh inheritance right from python and you're going to get a new test that leverage the base test so you're going to have two tests now one with npi one without npi and of course we can do better I mean we can do way more within that so we can actually have different compilations of different architectures so we can have haswell broadwell native and you can start parametrized tests and do all the options so if you want to run different conditions or different cases so I can go there and leverage basically a factory so I don't have even to write a factory class or a fake factory function to spawn different different tests because I can just basically parametrize my test right so this actually it may look like yeah that's a bit silly but in fact when you have a lot of tests and you want to spawn different cases instead of writing a function that's pretty big but just giving like one line saves all the space and drops a lot the maintenance costs right so but really I wrote this but how does it really works right it makes no sense I mean this cannot be magic right so on reframe we do something like easy build dies we have a pipeline we go through a set of steps that's always the same so when you start the framework you're gonna basically get all the tests from gonna import all the tests like easy build dies it goes imports all the easy blocks right and then you're gonna start running the tests and then you pick one test and then you check is this test supported by this environment or not of this system or not if it's not supported then you're gonna pick the next one you're gonna continue right because you can say I am pitch died as the before the test but I can be running on my laptop if I'm running my laptop it's not pitch died so that test was written for pitch died will be skipped right so and then you can look at the program environments that are installed in your system and also available for your test then you go for setup phase what does it mean it means that we create the folders required to run the test we cop clone environment to guarantee that we can reproduce the environment of the test then we compile if it's necessary to be compiled and then we run it can be a synchronous as I told you can be running parallel taking leverage of the scheduler or not if you run to run serially you can also run serially then we do the the sanity checking to guarantee the the sanity the performance and then you basically if if you pass or not you just clean the results and then finishes you go to the next step and then you continue right so the the the pipeline is given like an easy build so the one thing that we we we have defined for this pipeline and the the idea of the pipeline is to get how can I say uh reproducible uh run right so we can actually guarantee that whenever you run you're gonna pass by all those steps and you can define what actions you can take on those on those uh steps but sometimes you really don't need to go through that right I have compiled grammar I provide grammar on the system why do I have to compile again right so I can skip the the the compile test so we have done some some I can say I help the users to skip this past so we have provided two other classes a compile only test or run only test that you can compile of the test only like hello world if you want just to compile and to guarantee it to produce binaries or you can run the test it like draw matches run application because you have compiled already with easy build for instance so uh another thing that we we allow because we're doing python right users can do anything we can allow the users to overwrite anything we have done right so you can go there and overwrite the setup class and do something different and then play around with with with uh all the setups so it's just like before my test was not working I didn't go there overwrite the setup do something different because I want to do something and it just works right so that's that you can you can do you can do these these how can I say customizations as much as you want right so by that we actually cover all the possibilities of tests that we have on our regression suite we have never encountered a condition that we could not write of course we have encountered conditions that writing the test was not that good so then we worked out the framework to allow us to to better deal with these cases so if you write in regression tests and you are thinking that it's being difficult share with us your tests maybe it's a missing feature that we have to support on on reframe right so I would just jump the front end stage but running the the front end is more or less like that you just run this reframe and minus r to guarantee that you actually run in the regression and you can customize your configuration which this configuration is the map between the system that you are running in your tests so I can say oh pitchdine has t-mode installed so you're going to run t-mode oh my laptop has l-mode installed so you're going to run l-mode on my laptop so this is the that's the mapping between the system oh my laptop I have a clang l-l-v-m and in gnu on pitchdine they have in t-r-p-g-i all those so this is this is the mapping and this is maybe saying oh this is a bit silly but actually this allows me to write my tests from a laptop through a t-r-v-c-i to Jenkins to pitchdine I can bring my tests from all these systems because I can actually just add to this path right just add to this folder and I can take my test that runs on pitchdine and I start to run on juby on juby also on on the eulish systems right and then I can take my tests and start running on exit systems so just by adding then adding this map final right of course when I am writing my tests at css they do have this dyne gpu dyne mc the program environment from from there so going from my program environment from kray to a different linux box it's not doesn't make much sense right so my tests are not sometimes kray specific right so I can also change the path of the folders that have my checks so I can write checks for I don't know a specific cluster or I can write the test for another cluster so I can put the different folders so reframe allows you also to play around with these things so these two these three common lines I would vote as the most important ones because allows you migrate the tests or migrate the workflow to different systems and one thing that we do a lot is trying to separate or report to the users the different steps right because when you're compiling the code you are you have to compile it in an isolated place so that it doesn't scramble your home folder for instance you're running on a home folder in your scratch so we actually go to different folder and if it fails it's it's good that you keep the files there keep the scripts that we have generated there to run them so that we can try to reproduce so we have a sub and if it passes maybe my gram max input file is like one terabyte one gigabyte and I don't want to save it to the output so you make shoes also to store some files or don't store some files after the test has passed so we have the separations of of concerns so we have the stage directory where you actually did your test runs the output directory where you actually save your selected files that you really want to save for your test and we have this performance log directory if you have chosen to write a performance a test which means you chose to have analysis of the performance then you can also save a log of the performance you can say well but why that I mean why why well in a production system like we do in pitch died we do production runs which means we run reframe every single day so we save on the same folder always the test so now we have this file that per test right we have one file per test that contains the performance of the the applications along the days right we have the date we have the time it was rent so we can actually do statistics that's what we do on pitch died at least so how does it look like when you run it you you get like a google test some sort of output that you say run okay or run failed and when it failed and then you're gonna get failed and the reason why oh this guy failed and on the performance phase right so you know that the performance didn't match and their performance reference was 70 but it didn't fall within the so the reference was 70 and the value that actually was getting was 50 so it didn't fall within the range that you wanted because I didn't say that but we we can also say a range because we're dealing with production systems right so they fluctuate the performance if I if I get nodes that's a real local I'm gonna get a better network performance but my nodes are all spread on the system my network would be not that that good if I don't have a fully connected system right so and one thing that I like a lot is this logging so this is the how the log file looks like but because we also sent your gray log right we can make graph on her graph so I mean we can make graphs out of this this performance so every day the guy his own roster has to look at the performance if I had failed and didn't fail so we can actually get this statistics and though you know things have fluctuated or didn't fluctuate the performance so how do we do actually use how do you leverage all these things at css right so we do have around 241 tests so which means that we have 241 files with different test cases so this thing is spawns into different test cases what's the test case is the combination between different programming environments different variables that you have produced your primary trial test so we have like just 241 files more or less and then this is sponsored to I think a thousand tests is not mistaken my test cases it's it's but it's it's yeah but I think today is around around thousand something like that so it's really really spawns several tests of course we don't run a thousand tests because there's split into different systems you see here but that's that's uh that's uh how it looks like on pizza today so we do we do have what's called production so we run daily this this this test and the maintenance for the for the maintenance when you have maintenance and we do also for no diagnosis and we it's nice to have a production run but if someone has to be in charge of running that it's not so reliable so what we do we have Jenkins running our production our production systems every day so we have Jenkins lives installed in all in our clusters and every day in a production reframe is executed so which gives us really good statistics because we have not only the performance log that we told you but we can also know if the test fail was the mini right if I have in my hello world has a performance failure and I'm in our case hello what means that performance failure hello what means that you took more than 60 seconds to compile hello world that it's a really good indicative that we have a huge file system issue right so because we was not able to read hello world through a simple file so we can kind of try to guess so we have network tests we have iot tests we have performance tests into our system and you may see okay this is a bit like over killing right yeah but once operations was installing the maintenance in the cluster and the cluster was supposed to be the gcc was supposed to be emitting hardware instructions and suddenly stops emitting hardware instructions because they just forgot to start something else in the system and then we detected it and we told them and then they suddenly start to go back again right so it's really important to guarantee quality of service to be running these frequently so this is more or less how it looks like for us we have a pipeline to do for instance in this case a cache production system and then we open the the open blue ocean and you see how the pollution looked like and then you look at all the failures for that day and you can see what has passed or doesn't pass so this is nice this is great but it doesn't cover all my problems as a support guy i have to give all the versions of gromex because the users ask for the versions right so whenever i am compiling a new version of gromex what i do i have to take the recipe that i have for gromex change the the version compile again with easy build and run reframe right reframe allows me to change the the modules and everything but wouldn't it better if i can run easy build directly and get reframe running my test because i do have a gromex test so that's what we want we want to integrate reframe with easy build right so the the integration that we have we have proof of concept integrations we want to propose allows us to optima or optatively or you can choose to run this integration or not and why because sometimes you don't need it sometimes we don't let let me say one case we do provide easy build recipes to the users right the user may run the style that version of easy build but he doesn't want to test my test right he wants to test his input file so in that case he will compile gromex and then test for himself the the his input case right he doesn't have to waste his compute resources with my test right so for him it's not not so nice to be using using this so you can option to use it and some for instance like we have some tests that are mpi based and some systems you cannot run mpi locally so also that may may not be optimal for you so what we have done is basically we have leverage easy build hooks as proof of concept to integrate reframe and we have seen really good advantage of doing that the advantage is because you because you're doing hooks you are actually inside the easy block of reframe of easy build so i can leverage the entire easy build infrastructure that's really good so i can program completely what i want but and i don't need to change reframe right that's easy so i just go and call reframe and i run reframe the bad thing about that is that to actually support the easy block you need to apis from easy build internal apis from easy build which may or may not be available in next release right so you're gonna break and these things are not even tested right so these hooks are not even tested so whenever you do not go do a release or reframe or easy build they didn't see this code so they didn't even test it right they didn't check if it's properly uh running and another thing that's really interesting is that because i'm running the internals api which are tied to a version of the of easy build i also have to come come with like common line arguments for reframe right minus r minus c capital c all this kind of stuff so it binds also to the version of reframe i'm using because if i change the component argument of reframe then suddenly i'm not being able to use that feature because you cannot pass common line argument to hooks only on easy build right so what we really want is that instead of having just a hook we this integration becomes a full step into a into the easy build pipeline and to give an idea how does this this thing looks like that's the integration right this is full of concept of the integration easy build does not support a function called prepend fake modules path right what it does has load fake module that's what it does it does this prepend at the end just loads the module so what i have to do i have to remove the load command make the function here and put internally to this post hook because the api is not there right the function is not there why because whenever you start the software we want the to prepend the path so i can actually load that path when i'm running reframe right and then you can see things like if not dry run right oops hooks executed if you have extended dry run right this is really nice i was talking to can yesterday he said maybe a bug i said no no no this is a really nice bug it's a feature why because i can now see when it's dry run and i can say oh reframe command was this one right so i can do proper uh say messages when you are in dry run mode so extended extended mode but that implies that i have to include a lot of things from israel for instance at the vsc utu is like he was talking yesterday with zappier in israel 4 so this is doomed to be to be broken right so we do need these steps to be integrated so how does this integration look like today i mean how does this is even a simple case right because you see there's some things like if i am doing grow max then call the test for grow max if i'm doing amber and kuda though the disorder test for amber for kuda right but wait a second this is the test that i have for reframe but it may change but this is tightly integrating the hook so if whenever i update or add a new test to reframe i have to come here and update this table and if you go to this production file you're gonna see this if it's not just this is small this is just enormous it just takes the majority part of the of the function so this is not optimal integration another thing that's really interesting is that because hooks do not cannot be passed common lines i actually have to hijack the build options from import the build options and to do dry run i have to know that there is also the silent option right if easy build changes tomorrow the common line doesn't require silent this is broken right so i think i have been stressed enough that this is not a good solution right we need a proper integration and how does it look like to run today i do hooks reframe and then runs and then run post sanity check hook and that that thing actually runs reframe so and the output looks like that running amber and then doing the checking running run the amber gpu because that one the gpu version and reframe was executed so let me review just a bit we did the normal sanity checking of amber so that comes with easy build and additionally after doing that which means that i guarantee that i have the binaries installed i can now run the regression right i can run this step i would do but i would do like a monkey right i would i would run this after it was run i would go there and run reframe myself so i'm just putting the monkey step that i was doing into integrating through into easy build right so but what we actually want is something like that we want something like uh minus minus regression framework and you can choose reframe or you can choose ub2 or you can choose build test or whatever you want and then give additional arguments because if i'm running on my on my on my laptop i may not be able to detect it because my dns changes if i'm on css and at home and everything so i may may want to give like a different command line option to detect my system or anything like that and then the integration that we want is that then it becomes a full step of the pipeline right i think i'm running a bit out of time but it's really good because i uh with that we finished the integration step and i just want to acknowledge the people who actually have actively contributed so as you can see is a lot of people with high big salaries working every day reframe so we do have a lot of efforts on reframe so if you're feeling that reframe has no future it'll be dropped or anything no no we invest a lot of money on that so it's going to continue so it's a really safe project to to to catch up and uh uh to give you some directions what we have been doing with reframe is that reframe now does not support what you call dependency so i can we could have something like my test compiles and then my my other test compiles something my other test compiles something and then i have like this multitude of run tests that will depend on these compilations right we don't support that that's something we want to do we won't get some dependencies so let's say this test depends on that other so if that guy fails i won't run all that so we want to have a better container support we do have containers we can run containers inside reframe not a problem but it for us is all about the user story right so you want the user story the guy who's writing a test written in container to be as simple as possible right so we are improving our container support and you want something like a benchmarking mode where where the output summary is a bit different when it gives you a bit more benchmark details so my final message or my tech hope message is that reframe is you can write in high-level python your your your tests to the regression tests that can encompass your from your laptop to a super computer system and it gives you comprehensive outputs comprehensive reports that you can integrate with your great log infrastructure your log infrastructure and it's a let's say as an extra point here it's highly maintainable in csss this has a big future for that so with that thank you very much and questions thank you very much victor any questions so it yeah it's working here yeah yeah it's mainly a curiosity i was thinking what were the design fault that led you to list as key feature we have no dependencies on whatsoever uh yeah okay the second one may be related how do you store uh historical test data how do you store store store okay so can i repeat can i answer for the second then i go to the first one so we for the historical data we do have three things the first thing is that we do save the file the log files on a shared file system so whenever uh you run on a pit site on cache or other system only for instance that we showed here if you all the the logs will be saved on that thing so on the on that parallel file system and save in specific folders per system so i can keep track of all of those log files the second thing we do is that we have a log infrastructure for a centralized infrastructure in css for logging gray log infrastructure so we send the data to this gray log and then we can probe these data into gray log directly or you can do the third one that i showed here we can get the graphs of these data to a graphana right so that's we we say this this is a graphana the access gray log so we do as infrastructure itself file system and or a gray log system a logging system three support so for the first question why we don't want to have independence well because starting python uh for some users is a bit difficult thing right so some people don't want to have like a bloated python or some versions of operation system like red hat seven comes set up tools at zero point nine point something and if you do update the setup tools is 44 or something so we don't want to be bound by this versioning also of the dependencies right we want to guarantee that we we we run independently and if there's a bug in one of these dependencies then we have to update it and guarantee that the version and then my user have to update it so we want you don't want to to have anything related to upgrading and was it is me so another reason is that we a key thing is to run the test in the user in an environment as close as possible to the user so even now when you run your fame you don't do any module parts uh you just do you start from the environment you are currently in and optional you say you even unload the module that has loaded the frame so if you if you even uh unload the module that you have loaded the frame and you had a lots of dependencies that um perhaps has a lot has changed you know compilers or whatever changed basically the environment that the user test will run so if you in order to run the frame you had a set of dependencies installed then perhaps that could be a problem wouldn't replicate exactly what the users do when they log in with the clean environment we wanted the environment to be as clean as possible but yeah it's it's not a strict mandate but so we can still keep it we do have a pie test dependency of course yeah it's only if you want to run the unit test any other questions do you have a repository somewhere where you can share tests with other people yeah so the on the repository actually on the on the reframe repository you have what a folder that's called cscs tests so we can take a look at all of the tests we provide versus like gromax tests you can see how it's written but actually you don't have the input files so you cannot run exactly the gromax we have there because you don't have the input files but you do see the tests right but other cases like hello world you have the files like any video test you have the files uh network file tests we have the files but because of the size of the input file sometimes we didn't put on the on our git repository but just a question of the size because we didn't want the people to go git clone and take forever cloning the reframe right that's the that's one of the the ideas behind we're investigating to do git lfs like large file support like large file system but it's still being uninvestigated so we haven't come up with a solution yet that can share tests but we're investing a lot now on on sharing our tests and get people sharing that test because we we from from those stargazes and people that actually have worked the test so many people many of them are super computer centers so they do have the the set of tests right and it would be nice that they share our files and we share with them and then people can download from their side also if they if they're willing to do that right so we are trying to find a way of how to share between sites the same problem that easy build has that people have their own local repositories and want to share stuff and yeah but you can you can take all the css tests i have a question as well yeah one of the the things i've been struggling with an easy build a bit is the regression and i really want to look into reframe to run the easy build regression test to reframe so what would that mean do i just have to define a single python module that instructs reframe how to run an easy build test is that it or so if if you are if you want to do the the api integration right python to python or you want to do it doesn't even have to be with the api i'm happy to call the eb command from reframe as a command for inside reframe yeah you can do that you can actually write a test and say uh my build test would be uh if you don't have to do the build test preview command will be eb and then you're gonna get eb your file and then that's it can i run and you can parse the output so we do support easy build today that's not i mean we also support spark today but the user story is not optimal so we don't say that we support it but you can support it how exactly so we so we we do have this this uh build system right and uh so i can say build system is a single source which means that you're gonna do nvcc on this file right so there'll be a build command to do that and the build command will be composed of these these lines nvcc and blah blah with minus oh three all this kind of stuff but there's also a pre build command so you can self dot pre build command equal to something and then you can say eb blah blah blah blah blah and then you're gonna do the eb eb command and then it's gonna skip i mean you don't have to do the actual build so there will be to be none and then that's it you can just i mean no build command but this is you see this is it feels like a hack right so this is not a really nice support so we were figuring about how to leverage these into getting easy build because there's there's there's something we need to do with easy build to make easy build work out of the box right so and that's what we are struggling with because okay the stage directory i can point to the build directory all this kind of stuff but if my system's l mode does it guarantee that this easy build will be if my easy build was misconfigured will it work or not do i change the configuration to make it work or do i take the configuration from the system itself so these are things we are trying to answer ourselves before actually writing the full the full reply here or do i always pass the modules to command here to easy build so this is things that we are investigating let's say to see what's the best user story final thing yeah i mean coming back again to your question is mostly i mean we should see the exact test case how what you want to run because you can write a monolithic reframe that does eb something but remember talking with you about the dependencies so yeah let's let's see the exact test case because in any case you can run because essentially it will generate a state so you can run whatever you like and now it depends on how it is what exactly you want to do another thing just one on on the users actually we have already from us several centers that they're trying it or actually using it i know a higher state super computing center is currently having introduction nurse can l l n l uh they have again production rewrite they run some tests um and then we have other centers as well it's from universities and it's a route here to university we have i mean starting building up also i mean so the idea is now how we start sharing tests we it's also the posi center in australia niva in new zealand the i i know they're running on production there's also a couple of uh private companies in hbc that they're using also pbs but can then contribute with this as well so yeah so we hope that it will expand for that aspect yeah and if you want to do the integration of easy build and reframe internally we have to get easy build to be three part of the but that's uh but it's also possible to do that any other questions nope yep thank you very much victor thank you


Welcome. I welcome you all to this lecture in the course, Samasa in Paninian Grammar 2. As is our practice, we begin our lecture with the recitation of the Mangala Charana. Vishvesham Satchitanandam Vandeham Yo Khilan Jagat Charikarthi Bari Bharti Sanjariharthi Leela Ya Vishvesham Satchitanandam Vandeham Yo Khilan Jagat Charikarthi Bari Bharti Sanjariharthi Leela Ya As we have said before, the focus of this course is the three types of samasas in Sanskrit and their treatment in Paninian Grammar. They are Avyaivhava, Bahuvrihi and Dvandva. First, we study the Avyaivhava Samasa as dealt with in the Paninian Grammar. Before entering into the Avyaivhava Samasa domain, we studied the theoretical background of compound formation as stated in the Paninian Grammar and the Paninian Grammatical Tradition. Then, we also studied the process of compound formation and after that we have started studying the Avyaivhava Samasa, which is a very important type of samasa in Sanskrit. The structure of the Avyaivhava Samasa can be represented in the form of an equation mentioned on this slide, where X and Y are two independent separate entities in terms of meaning as well as word form. Also, they are interrelated. The speaker of Sanskrit then decides to bring them together and merge them together, so to say, as far as both the meaning as well as the word form is concerned. So, the process of merging takes place and X and Y become the input and a newly generated one output in the form of X, Y comes into being. This is one unit as far as the meaning is concerned and also the word form is concerned and also as far as accent is concerned. Now, in the unit XY, X acts as the head as far as the meaning is concerned and also the word form is concerned. In the Avyaivhava Samasa, X generally happens to be an avyaya or an indeclinable and Avyaivhava Samasa as a whole, as one unit also is termed as avyaya. By the sutra, Avyaivhava Shtir 1141. So, the form of X affects the form of XY. Thus, X acts as the head of XY. If any other meaning is to be related to this XY, then it should be related through the meaning of X. That is the significance of this particular equation and therefore, X in XY as one unit is marked in bold characters. In the Ashtadhyay, Avyaivhava Samasa is dealt with in different sections. Let us take a quick look at these various sections and what they contain. There is a section of rules in 2.1 starting from 215 up to 2121 which prescribes the Avyaivhava Samasa. 215 is Avyaivhava and 2121 is Anyapadhar Thecha Saudnyayam. These are the sutras which are called Samasa Vidhayaka Sutra, the sutras which prescribe a Samasa. Then in 5.4 from 107 up to 112, we have a small section of sutras which prescribes the end of the Samasa suffix in case of the Avyaivhava Samasa. And then we have some sutras prescribing the accent on the Avyaivhava Samasa. For example, 6 to 121. Amongst them, first we study the Samasa Vidhayaka Sutras. So we started with Avyaivhava and now we are studying 216 which is this big sutra. This big sutra has got two padhas, Avyaivhava as first padha and remaining as second padha. Avyaivhava is in the Prathama Ekavachana and therefore the sutra Prathama Nirdistam Samasa Upasarjanam applies and terms Avyaivhava as Upasarjanam. And then Upasarjanam Purvam applies and ensures that the Avyaivha occupies the initial position of the Samasa. And the second padha which begins with Vibhakti and which ends with Antavachaneshu is one big Samasa, a Dvandva Samasa. And this is in seventh case, 7 slash 3. This is in seventh case, 7 slash 3 indicating the meaning conditions. It is these meanings which the Avyaivhas denote and then they get compounded with the semantically related Svanthas. Thus the meaning of this sutra we shall read later on but right now let us read the second padha in this sutra. It is Vibhakti, Samipa, Samraddhi, Vriddhi, Artha Bhava, Atyaya, Asamprati, Shabdha Pradur Bhava, Pashchat and Yatha, these we have already studied. Now the meaning of this sutra can be rendered in Sanskrit in the following manner. I repeat, Vibhakti Adishu Arthaishu, Vidyamanam Avvayam Subhantam, Samarthena Subhantena Sahasamasyate, Avvayi Bhavascha, Samasobhavati. What it means is the following, any indeclinable Svanthas denoting the sense of Vibhakti etc. is compounded with any other semantically related Svanthas and the resultant compound is called Avvayi Bhava. I repeat, any indeclinable Svanthas, Avvayam Subhantam denoting the sense of Vibhakti etc., Vibhakti Adishu Arthaishu, Vidyamanam is compounded with any other semantically related Svanthas, Samarthena Subhantena Sahasam, and the resultant compound Samasaha is called Avvayi Bhava, Avvayi Bhava Bhavati. This is the meaning of this particular sutra. As we said before, we have studied how the Avvayi Bhava Samasa takes place in the earlier stated semantic conditions, starting with Vibhakti, Samipa, Sambraddhi, Vriyadhi, Artha Bhava, Atyaya etc. In this particular lecture, we shall study the four semantic conditions stated on this slide, namely Anupurvaya, Yagapadhyaya, Sadrashya and Sampatti. Anupurvaya is sequence, Yagapadhyaya is simultaneity or simultaneousness, Sadrashya is similarity and Sampatti is befitting self-esteem. Now let us study them one by one and see how the Avvayi Bhava Samasa takes place in these semantic conditions. So first let us study Anupurvaya, which means sequence. The tradition interprets the word Anupurvaya as Anukramaha, the sequence. So when the meaning is in the sequence of the oldest, Jaishthasya Anupurvayana is the Laukika Vigraha. And then we have the Laukika Vigraha, where we have Anu plus Ta plus Jaishtha plus Gnas. Now this Laukika Vigraha gets the Samasa Saudnya and then this Samasa gets the Pratipadika Saudnya by the Sutra Krt Taddhita Samasascha. After it gets the Pratipadika Saudnya, the Sutra Supodhatup Pratipadika Yoho applies and deletes both the Sups, namely Ta and Gnas. So we have Anu plus Zero plus Jaishtha plus Zero. And then we join them together and we get the form Anu Jaishtha. Now, when we use the word Anu Jaishtha in the sentence, we add the suffix Su, for example, after Anu Jaishtha and so we have Anu Jaishtha plus Su. Since the Avyaibhava Samasa Anu Jaishtha ends in a, the Sutra Na Vyaibhava Atomthva Panchammyaha applies and substitutes Su by Am. So we have Anu Jaishtha plus Am. Then we apply the Sandhi rules and we get the form Anu Jaishtham which is a Subanta form Anu Jaishtham. This is how we use the Samasa in the sentence Anu Jaishtham Karyam Krtam. The work was done in the order of the eldest. Here the compound qualifies the action denoted by the verbal root Kru in the word Krta. Anu Jaishtham Karyam Krtam. Similarly Anu Jaishtham Pravishantu Bhavan Taha. May you all enter in the order of the eldest. So here the compound qualifies once again the action. Action of entering denoted by the verbal root Vishya together with the proverb Pravishya. This is how Avyaibhava Samasa takes place when Anu Kru Vya is the semantic condition. Let us now move ahead and study the condition Yuga Padya which is Simultaneousness. Which is Ekka Kaalata. Ekka Kaalata being in the same time zone. So now when the meaning to be conveyed is together with the wheel. The Laukika Vigraha is Chakrena Yuga Path. So the Laukika Vigraha would be Saha plus Su where Saha is denoting the sense of Yuga Padya. So Saha plus Su plus Chakra plus Ta. Now this is an Laukika Vigraha and here we get the Samasa Saudhnya. And because we get the Samasa Saudhnya we apply the Sutra Krta Ddhita Samasascha and we get the Pratipadika Saudhnya. Then we apply the Sutra Supodhatup Pratipadika Yoho which deletes both the Sups namely Su and Ta. So we have Saha plus Zero plus Chakra plus Zero. Now the Sutra that we have studied earlier namely Avyaibhava Chakale applies. Which substitutes Saha by Sir. What that Sutra meant is that in the Avyaibhava Samasa when the Uttarapada does not denote kala or time, Saha is substituted by Sir. That is what happens here and so we substitute Saha by Sir. And we get the finally derived compound output namely Sacha Krta. When we use it in the sentence we add the Pratyayasu to it. So we have Sacha Krta plus Su and because Sacha Krta is an Avyaibhava Samasa ending in short a. So we apply the Sutra. Now Avyaibhava Atomthva Panchamya and substitutes Su by Am. So we have Sacha Krta plus Am. Then we apply the Sandhi rules and we get the Subanta form Sacha Kram. Now we use it in the sentence and say Sacha Kram Dehi. May you hold the wheel simultaneously. So you are holding something and at the same time you hold the wheel. That is what is the meaning of this Samasa. Thus it indicates the semantic condition Yuga Padya. Yuga Padya is denoted by the Avyaya Saha which is substituted by Sir in this case by the Sutra Avyaibhava Chakalai. After having studied Yuga Padya let us now move to the next semantic condition which is Sadrishya. Sadrishya is similarity. And one who has similarity is similar. Although these two meanings are very close to each other they are different meanings. Sadrishya or similarity is a property whereas one who has similarity or similar is a Dravya. So similarity or Sadrishya is the guna and similar refers to a Dravya. And therefore the tradition has put forward a question namely that Sadrishya was also one of the meanings of the word Yatha. And this Sutra has already prescribed the Samasa Avyaibhava Samasa in the semantic condition of similarity. What is the purpose of restating the word Sadrishya over here? On the force of the fact that this word Sadrishya is restated over here. The tradition gets the additional meaning namely that this Samasa is to be done in the sense of not the similarity but similar. So Yathaar Tatvena Siddhe in the sense of Sadrishya the Avyaibhava Samasa was obtainable already. And still Anini states explicitly the same condition once again Sadrishya. What is the purpose of stating this condition again? The reason is that Gunabhutepi Sadrishya Yatha Syaad. When Sadrishya or similarity becomes Gunabhuta and one who possesses this property of similarity becomes the Pradhana becomes the head. In that sense also the Samasa should take place. That is what is the intention of the Suttragara Panini to restate Sadrishya. So we have Sadrishya Vaan Sadrushaha. In the word Sadrishya Vaan we have Sadrishya plus Wat as the suffix. Sadrishya is the property Wat indicates one who possesses. Now one who possesses similarity is considered to be similar. But the word Sadrishya Vaan is referring to Adravya and Sadrishya is referring to a property. And the point of the tradition is that the word Sadrishya over here refers to Sadrushya. This is the bottom line. The word Sadrishya over here means Sadrushya that means this is referring to Adravya. So when we have the semantic condition Sadrishya which means Sadrushya and when we want to convey similar with a friend. Somebody is similar like a friend or with a friend. So we have Sadrushaha Sakkhya. This is the Laukika Vigraha. Saha once again denotes the meaning of similar and so we have Saha plus Su plus Sakhi plus Ta. Since Avyayam is mentioned in Prathama, Avyaya occupies the initial position in the Samasa. So we have Saha plus Su plus Sakhi plus Ta. This is the Laukika Vigraha. And so at this stage we get the Samasa Saudnya and so then we get Pratipadika Saudnya and then we apply the sutra 2471 namely Supodhatup Pratipadika Yoho and we delete both the sub-pratyayas.  Then we apply the sutra Avyayi Bhave Chakalai and substitute Saha by Sir. What Avyayi Bhave Chakalai says is that in the Avyayi Bhava Samasa if the Uttarapada is other than Kala then the Avyaya Saha is substituted by Sir. This is what happens here. Sakhi is the Uttarapada which is not a Kala and therefore Saha is substituted by Sir because this is an Avyayi Bhava Samasa. So when we join them together we get the finally derived compound output namely Sasakhi. Sadrashasakya is the Laukika Vigraha and Sasakhi is the compound output. This is the Avyayi Bhava Samasa. Then we use the word Sasakhi in the sentence so we add the suffix Su after it. So we get Sasakhi plus Su. Now we know that this is an Avyayi Bhava Samasa. Therefore we apply the sutra Avyayi Bhava Chakalai which declares that an Avyayi Bhava Samasa is an Avyaya. So we apply the sutra Avyayi Adap Supaha which deletes the Suprataya that comes after an Avyayi. Now Sasakhi is an Avyayi and therefore the Suprataya gets deleted and we get the form Sasakhi as the Subanta form. We can use it in the sentence in the following way. His virtue is similar to his friend. Here the word Sasakhi is qualifying the guna. Similarly if we want to say similar like a fox. This is the meaning to be conveyed and we have the Laukika Vigraha Sadrushah Kikkhya. And then we do the same processing and we get the finally derived compound output Sarkikhi. This is an important feature of the semantic condition Sadrushah. Let us now study the next semantic condition which is Sampatti which means be-fitting self-esteem. Anurupaha Atmabhavaha which is explained in the commentaries as Svochitankarma be-fitting action. This is different than Samradhi which means excessive prosperity. Therefore this is not that Sampatti. So when we have this meaning to be conveyed namely be-fitting action of the warriors we have the Laukika Vigraha Kshatranam Sampatti. And then we have the Avvaya Saha which expresses the meaning Sampatti. And because in the Sutra Avvayam is mentioned in Prathama. Avvaya occupies the initial position in the Avvayibhava Samasa. So we have Saha plus Su plus Kshatra plus Aam. Now this is a Laukika Vigraha. Therefore we get Samasa Saudhna. Therefore we get Pratipadika Saudhna. And then we apply the Sutra Supodhatup Pratipadika Yoho. And we delete both the Sups. So we have Saha plus Zero plus Kshatra plus Zero. After that we apply the Sutra Avvayibhava Chakale 6381 which states that Saha is to be substituted by Su when followed by the Uttarapada which is different than Kala. Now here Kshatra is the Uttarapada which is different than Kala and therefore Suha is substituted by Su. So we have Su plus Zero plus Kshatra plus Zero. When we bring them together we get the finally derived compound output namely Sakshatra. Kshatranam Sampatti is the input Laukika Vigraha and Sakshatra is the output of Vyayibhava Samasa. When we use it in the sentence we add the suffix Su for example. So we have Sakshatra plus Su. And because Sakshatra ends in short a we apply the Sutra Avvayibhava Atomthva Panchamyaha and we substitute Am in place of Su. So we have Sakshatra plus Am. And then we do the Sandhi and we get the form Sakshatram. This is a Subanta form. We use this word in the sentence in the following manner. Sakshatram Shalankayananaam. This action of Shalankayanas is befitting of warriors. This is what is the meaning of this particular sentence. This is how Sampatti acts as a semantic condition for the generation of the Avvayibhava Samasa. So we have studied four semantic conditions today. Yagapadya, Anupurvia, Sadrushya and Sampatti. One of the key points over here is that Sadrushya means Sadrushya over here. There is difference between Sampatti and Samraddhi. Next we study how the processing of the Avvayibhava Samasa happens with the remaining semantic conditions in this particular Sutra as well as other Sutras. And how this process progresses to derive the final output in the form of a nominal root or Pratipadika. So that output namely Pratipadika plus Su behaves in the sentence. This is what we shall see next. These are the texts referred to. Thank you very much.


The Columbia Broadcasting System presents One World Flight. You are listening to Muslim prayers coming from the loudspeaker system of the Muhammad Ali mosque in Cairo. As heard above the cheering of thousands of Egyptians on the day last summer, that Britain returned the famous citadel to Egypt. This historic recording is among several authentic sounds and voices transcribed inside Egypt and India to be heard tonight on this eighth of a series of 13 broadcasts based on Norman Corwin's 37,000 mile global tour as first winner of the Wendell Wilkie One World Flight Award. On the 9th of last August, in the holy Muslim month of Ramadan, the Union Jack that had flown over Cairo's ancient citadel for 65 years came down and a green flag of Egypt was raised by its king Farouk. The act was a symbol of Egypt's independence from the British and it was cheered by a throng gathered in a square below the citadel. That night, both the citadel and the Muhammad Ali mosque behind it were floodlit. A great searchlight, the kind used during the war to spot aircraft, was trained on the flag. The evening was clear and warm with exhalations from the African desert stretching away on all sides. The celebrants seemed to cheer every stirring of the flag in the breeze that came off the swollen Nile and as though to contribute to the vivid mixture of ancient and modern which is Cairo, an airplane came up from nowhere and flew low over the scene. For a moment, its motors obliterated the voice of the Moazine chanting praises for Allah on the public address system. On a rooftop in the neighborhood of the citadel where we had set up our CBS recording microphone, a group of Arab women sang with an abandon that seemed to go along naturally with a bizarre setting of minarets, airplanes, floodlights, domes, cupulas, cheering and amplified prayer. It was all colorful and wonderful under the amber moon of Ramadan.  Certainly the celebration of independence is a joyous occasion to any nation. But in the hot bright lights of the next morning, it was perhaps reasonable to ask what this independence represented. Independence of home, for home. Whether the people who had cheered it last night would profit by it tomorrow. Exactly what these people were, how they lived, what they thought. Whether they had fears, hopes, ambitions. We set out a few of us to look for answers. Our party consisted of Lee Bland who handled the recorder, George Polk, CBS Cairo correspondent, Marcel Hitchman, a writer who served as our interpreter, and myself. Our first stop was in Abdeen Square in the vicinity of the King's Palace, and I intercepted the first person to come along. He was a boy, better dressed than most to be seen on Cairo's streets. I asked how many were in his family. What sounds at first like Godfather is the boy saying, I Godfather and so forth. Good father and good mother and good sister and good father and good everything. All living in the same place. How many rooms? He said he was a mechanic, that he earned 15 piastres a day, which is the equivalent of about 60 cents. In the following recording, you will hear questions by Polk and myself. The interruption of a small child standing nearby, and toward the end, the striking of bells in a tower of the Abdeen Palace. What sort of food do you eat? Something like that. I take 15 piastres every day. How much? I take 15 piastres every day. I smoke the cigarette by 5 piastres and keep 10 in my home to get some uniform for myself. Yes, sir. He said he wasn't worried about anything. He said he had heard a rumor that the war was over, but he wasn't sure. He was somewhat better informed about American jargon, for he suddenly used the phrase, hubba hubba. You've seen some American movies, huh? Yes. Is that why you've got hubba hubba? Hubba hubba and turkey easy. Booking studio to make hubba hubba, turkey easy. Through Mrs. Hitchman, we next questioned a man named Abdul, who said he was a servant, earning 7 Egyptian pounds a month or about $21. I say that you're happy now, your life. He says, well, who is happy? Why are you not happy? Because everything is expensive. I asked what he thought of Egypt's independence, of the situation in Palestine, whether he knew the war was over. He said, I don't care about politics and about war, who cares about these things. I asked whether he was at all interested in the world outside of Egypt, whether he would perhaps like to visit some other country. Well, should I go? If there is work somewhere else, alright, but I mean to go just like that, where? I see. Does he ever get to see a movie? He never went to see him in his life. Would you like to go to one? Why should I go? He said he had never read a book, that he never read newspapers, that he was not interested in these things at all. While this was going on, a crowd had gathered and there were rumbles of suspicion and hostility. I started to ask questions of an Arab in a long blue Galabia, and he told Polk, he thinks his men sold to his dignity. Other people in the crowd said they were afraid of being recorded. I asked what accounted for this attitude. Well, it's quite difficult to explain. First of all, it never happened to them before. And then they don't know what is this, and they think it's mixed up with some movie business, and they just now, especially, they are not very friendly, they are foreigners, and they are afraid of stating things definitely. They don't like people who ask them questions. They are always like that. You see, when people ask them questions, it generally brings trouble. It means there is a policeman who comes to ask them questions or things like that. Nobody ever asks them what they think. Egypt was the 11th country visited in our one-world flight, and though we'd seen bad conditions in other countries, this, for a traveler heading east, was the beginning of really morbid ignorance, squalor, disease. To the high, Cairo is attractive, both in its medieval and modern aspects. It's checkered with mosques and palaces, ancient walls, towers, domes. The old city has bazaars and narrow winding streets. The newer quarters along the river achieve a certain European colonial dignity. To the east, behind the citadel stand barren hills, and beyond that sandy desert. Just out of town at the edge of the western desert are the great pyramids, and in between, the Nile, tree-shaded, romantic, polluted, supporting life and agriculture along its banks just as it has done since earliest history. In this austere land where so much of civilization was cradled, there is small tradition for one world, or for anything resembling democracy as we know it. The world of Egypt has been, by turns, Memphite, Theban, Syrian, Persian, Macedonian, Roman, Arabian, Turkish, French, British. Dozens of wars have swept up and down the Nile and have zig-zagged across the deserts, and the only constant factor since the days of the pharaohs has been the depression of millions, the poverty, the relentless ignorance. There are schools in Egypt, yes, for the better off. There are also health services of a sort, we were told about them. But as we went around the city, stopping ordinary kairines on the street, there was little to show the effect of either education or sanitation. In a big square known as Medanismilia, one of the newer and better sections of the city, we interviewed people of random one night. I asked a cook named Ahmed what he thought of conditions in the country.   When I asked him what he thought should be done about it, he answered that the government should open shops and factories in order to create more work. He said he was a monarchist because he read in the papers that the king wanted to improve Egypt. I then asked about his knowledge of politics. Have you ever heard the word fascism? You have not. Have you ever heard the word Nazi? He has not. Have you ever heard of the word communist? What do you know about democracy? Democracy means everybody is the same. Among those we interviewed on Cairo's streets, Ahmed was exceptionally well informed. More typical of the attitude we met with everywhere was that of Mohammed, a waiter. The regime of Ismail Siddi Pasha, since succeeded as prime minister by Fahmi Al-Nakrachi, was under considerable attack and criticism at the time and I asked Mohammed what he thought about it. How do you feel about the government in Egypt today, the government of Siddi Pasha? He says we don't care at all in all these troubles. We don't participate in these troubles and we don't hear anything about it and we don't want to hear anything about it. I asked Mrs. Hitchman, long an observer of Egyptian affairs, why so many of the people shied away from any kind of political thought or expression. They are afraid. They are afraid of every kind of authority. They know that every time they come in contact with authority, they aren't happy. So they are afraid of doctors, they are afraid of policemen, they are afraid of the government, they are afraid of everything. The ignorance which lay like a pall over the people was not confined to any particular district. It should be borne in mind that these recordings were made not in a backwoods area in tobacco road country but on the streets of the biggest city in Africa, a modernized busy city which for centuries has had access to the best of eastern and western culture. In the hope that samplings made thus far were not entirely representative of the Egyptian man on the street, I tried again in still another district. The first man here was a worker, father of two children, sole support of his mother and father. He earned a dollar a day. In the following recording you will hear the man say an answer to a question. Throughout the Middle East this means no. Has this man ever been outside of Carol? He doesn't read, he doesn't write. Has he ever seen a moving picture? No, no, he said. Has he ever heard a radio? He says he listens to music from the Egyptian state broadcasting but not to the news. On his own radio? High up the ceiling of the cafe and it's kept open night and day so everybody hears the radio. Home sets here? They just can't dream of it. They haven't got enough money to buy clothes. How could they buy radios? We next talked to a man who said his home was four miles from the Nile and I asked when he had last seen the river. He hasn't seen the Nile for the last eight years. He went only for two months to school and then he left. He passed over here a moment later and I asked the boy whether he'd like to fly in one. At first he said no and then he said tomorrow if I work for Hitler maybe I'll ride a plane. Nobody ever told him that Hitler is dead. I mean Casablanca.  And has he ever thought he would like to find out? Who on the wall is he curious to know? It took some time to make the boy understand this last question and in the process a man of about 35 who was standing nearby a cemetery caretaker took part in the discussion. Finally they both answered it. The boy says he doesn't care and the other man, the other caretaker says well in the end Hitler will win. George Polk noticed that the caretaker had an eye infection and he informed me that 90% of Egyptians suffer from eye diseases and that the incidence of blindness is very high. I asked Mrs. Hitchman to ask the Arab what he was doing about his eye. I said well but why don't you go to some clinic or something he says I have no money.  Here you see them wandering in the streets, so many persons blind. The statement God is there was accompanied by a gesture of pointing to heaven. The government of Siddhi Pasha last summer had one absorbing internal preoccupation and it was not that of alleviating the poverty or sickness of its people. It was the hounding of liberals. The editor of the principal newspaper of the Wafda an opposition but not leftist political party was arrested so was the Greek millionaire Zabini known to be sympathetic to the anti-royalist movement in his home country. 11 cultural, scientific, educational and labor associations were suspended hundreds of people were jailed for weeks without charges. Months later on November 8th the New York Times reported from Cairo and I'm quoting the red scare in Egypt has passed off without proof of the existence of a communist organization. Nearly all persons arrested have been released. The roundup resulted in the detention of an assorted lot of intellectual, social reformers, labor leaders and foreigners. Some would be described outside Egypt as liberals or socialists but those arrested included some who were plainly capitalists including millionaires. Others appeared to be simply opponents of the government. At the time we were in Egypt three months before that dispatch appeared the assorted lot of intellectuals was in jail and it seemed to me that the Egyptian people themselves were behind bars, behind the bars of their own ignorance. If there was any awareness of the concept of one world in ordinary Egyptian life it must have been as rare as a well-fed child, as rare as a well-paid worker, as rare as a literate farmer. We left Cairo for India at dawn one morning on a converted York bomber and flew across the glaring deserts of Transjordan, Syria and Iraq. Geographically this was the middle of the Middle East. Socially in point of progress it was the Middle Ages. The great and terrible bond among these many countries stretching all the way from the mouth of the Nile to the mouth of the Ganges is rank poverty, disease, abysmal ignorance. We crossed the vast swamp lands lying between the Euphrates and Tigris rivers and landed at the sizzling river port of Basra to refuel. Then we took off again and flew out over the Persian Gulf. The waters of the Gulf were a sickly bleached out blue. For nearly a thousand miles we followed the dry rugged west coast of Iran and as night fell we were droning over the Arabian Sea. In the middle of the evening we landed at Karachi, India a port well known to American soldiers who served in the Far East. On the day that we were to take our recorder on the street so that you might hear the voices of Indians religious rioting broke out between Hindus and Muslims and our movements were blocked. In Calcutta we found martial law when we arrived. We had to watch our step to avoid treading literally on the corpses of slain rioters. We could get no transportation to carry our recording equipment no batteries to run it. And without recordings whereby you could hear directly from more than a few Indian people it would be arrogant to comment upon a situation so complex that men who have given years to the study of India's problems shrug their shoulders when you ask them about prospects of unity within any reasonable time. India as you know is a land divided by hundreds of languages, religions, casts and customs. Its political problems at the moment are as difficult as those of almost any trouble spot in the world. Instead of attempting to present any rounded picture of the turbulent Indian scene as it existed last summer we will limit our report to an interview with the one Indian leader of world renown available to our microphone during the period of our visit. He has panted Jawaharlal Nehru Minister of External Affairs and Commonwealth Relations. We recorded Mr. Nehru in the modest home of his nephew. He was wearing the round white cap of the Indian National Congress Party. His sensitive face was drawn and sober. For almost an hour we talked on a wide variety of subjects. First about Wendell Wilkie whose book One World he said he had read in prison while under detention by the British for political reasons in 1942. We then discussed the international situation which at that time was badly inflamed. I asked what he considered the greatest threat to the peace. Well I should say the greatest single threat at the present moment is the growing conflict between America and England on the one side. She liked to put them together and the Soviet Union on the other. I believe how to blame for the blame in the past. Mr. Nehru spoke at length of India's problems which he said were not formed suddenly but were the accumulation of more than a hundred years. He had bitter words for the treatment of Indians in the Union of South Africa whose racial policy he called, quote, exactly on a par with Nazi doctrine, unquote. I asked him whether there was goodwill in India for the United States and he replied, America which attracts for many reasons among the negros of denying freedom to large numbers of our old people and we are suffering for that one of the causes that have unfolded in India in the past. Get rid of that completely. For one race or one nation or fundamental issue of career to another, it has to be given up. From the vantage point of this pleasant home in New Delhi, a city whose appearance suggests an American university campus more than an Asiatic government center, it was hard for me to imagine the vast Indian subcontinent of 700,000 villages stretching away to all compass points to sense the stupendous poverty and struggle of its nearly 400 million people. These masses, like the relatively small population of Egypt, come within the bleak area of humanity that we call backward. Backward because of no inherent lacks but because of economic stagnation and total absence of opportunity. I asked Pandit Nehru what recommendations he would make toward achieving the cooperative and united world of which Wendell Wilkie spoke and he replied, You cannot cooperate while suffering from all manner of conflict. He was looking right at America and our principal allies when he spoke of countries who have power and influence in the world today taking the lead and working out the four freedoms. Perhaps he had even defined a fifth freedom. Freedom from subjugation, prejudice, discrimination. A simple formula of that but one that would make life more livable for three out of every four people alive on this earth today. You have been listening to Norman Corwin, first winner of the Wendell Wilkie One World Flight Award in the eighth of a series of broadcasts based on his recent 37,000 mile global tour. All recorded voices heard on this broadcast were transcribed in Egypt and India. Next week at the same time, One World Flight visits China and Japan. Tonight's musical score was composed and directed by Alexander Semler. Guy Dela Choppe was associate director. This is Lee Vines and this is CBS, the Columbia Broadcasting System.


Hydrogen sulfide, an overlooked cause of IBS and of SIBO. Hi, this is Dr. Ruscio, and let's talk about a very interesting and very impactful study that relates to IBS and SIBO. So what is IBS and what is SIBO? In case you haven't heard of either one of these, IBS is Irritable Bowel Syndrome, which includes a constellation of symptoms that typically include gas, bloating, abdominal pain, and altered bowel function that may be constipation, it might be diarrhea or loose stools. And much of IBS, depending on who and what you read, may be caused by underlying SIBO, SIBO, which stands for Small Intestinal Bacterial Overgrowth. And as more people are becoming aware of SIBO and testing for SIBO, there's a little bit of a quagmire that has formed.  However, sometimes people will have all of the symptoms of SIBO or IBS, but their breath test is negative. And so it leaves the clinician or the patient kind of scratching their head. Now we've known about another type of gas called hydrogen sulfide, and this is not able to be tested according to standard SIBO tests, however a research group just recently developed a breath test for hydrogen sulfide, and that's a topic of this study, and I'll put it up here on the screen entitled Hydrogen Sulfide in Exhaled Breath, a potential biomarker for small intestinal bacterial overgrowth. So hydrogen sulfide is a different type of gas that can be released by SIBO, or Small Intestinal Bacterial Overgrowth, meaning there's an excess of bacteria in the small intestine. Here is what the researchers found, amongst many things, here's what I think is the take away, and I'll quote here. We found a missing link between breath, hydrogen sulfide, and SIBO when hydrogen breath test often fails to diagnose SIBO. So essentially what they're showing is exactly what I said a moment ago, someone has the symptoms of SIBO or IBS, the typical breath test is negative, and they then found that it was actually hydrogen sulfide that was positive. So it's pretty important for those who have either IBS or SIBO and are looking into if they have a bacterial overgrowth as a contributing factor, and the standard SIBO breath test has been negative. Now what does this mean? Well, what it means is it may still make sense to treat for SIBO even if you're, to treat for SIBO, if you have IBS symptoms and your SIBO breath test is negative, because what you may have is underlying hydrogen sulfide SIBO. Now what about doing the hydrogen sulfide test? I don't believe this test is readily available. We're currently looking into what this research group is located in India. I am not sure if their test is something that's going to be made commercially available, there's only locally available, or only available for their research purposes at this time. I'm sure eventually it will be more broadly available, but for right now it might not be a fruitful endeavor to try to do a hydrogen sulfide test. There is a hydrogen sulfide test via urine, but its correlation to SIBO and IBS has not been validated, whereas this test has, according to this study, been validated, but accessing this test might be a challenge. So what you can do, or what you can consider, speak with your healthcare provider about is if you have the symptoms of IBS, gas, bloating, abdominal pain, ulterior bowel function, loose tools, diarrhea, constipation, and you've tested for SIBO, and SIBO is negative, you may want to consider a course of treatment for SIBO anyway, in case there's actually the hydrogen sulfide SIBO contributing to that. Now in terms of treatment options, you may want to start with some of the less invasive treatment options for SIBO, like a low-fob map diet, which can be helpful, or certain probiotics, or herbal antimicrobials that can kill SIBO, or even, sorry, a liquid elemental diet, and leave antibiotics as a last resort, because we want to try to mitigate any harm if we don't have a lab test that tells us you definitely need this treatment. So what I'm suggesting is you treat based upon symptoms, but you have to be a little more careful, a little more conservative with the utilization, in my opinion anyway, of antibiotics, unless you have laboratory evidence to support the use of the antibiotics. So we can use some of the great tools that we have in natural medicine, like low-fob map, certain probiotics, liquid elemental diets, or herbal antimicrobials. So if you're suffering with SIBO, or trying to obtain a SIBO diagnosis because you have the symptoms of IVS, hydrogen sulfide might be a key player in that. If you're working with a good clinician who's open-minded and also willing to go beyond just what lab tests say, you'll probably be okay, and you'll probably have this all sorted out. But in case you're a little confused and trying to sort out why your lab tests and your symptoms don't match, hydrogen sulfide might be a major contributing factor to that, and that can lead you to, of course, a treatment that you can track to see if it helps you improve your IVS symptoms. So this is Dr. Ruscio, and I hope this helps you get healthy and get back to your life. Thanks.


I remember being among you all in Sanjeev, I remember being among you all in Sanjeev, I remember being among you all in September 2016 when our national Ajigode meeting was held here. In September 2016, on the 25th of September, I attended the National Assembly of the Indian People's Party and the National Council of the National Assembly. Today I am here requesting you to support BJP in the 2019 Lok Sabha elections. Friends, for decades, the communist LDF and communal UDF have dominated Kerala but they have miserably failed the people of Kerala. BJP presents an alternative to the people of Kerala and the people of Kerala are the people of Kerala. BJP presents an alternative that is inclusive, democratic and compassionate. We will serve each and every citizen. Friends, UDF and LDF are different only in the name of the people of Kerala. Both have taken turns to loot the state. UDF has a full dictionary of scams. LDF is no better. We have, why have so many ministers resigned on corruption charges? Since May 2016, backdoor appointments have been taking place in state peace issues but there is no reason for industrial development. Both have taken turns to loot the state. UDF has a full dictionary of scams. LDF has a full dictionary of scams. We have, why have so many ministers resigned on corruption charges? We have, why have so many ministers resigned on corruption charges? We have, why have so many ministers resigned on corruption charges? Parties here are experts at land grabbing. Contrast workers are waiting for justice but the parties here are insensitive to their needs. The condition of the Mahur Gwalya rayon factory indicates that the political leadership in the state lacks any plan for growth. Parties here are waiting for justice but the parties here are insensitive to their needs. Contrast workers are waiting for justice but the parties here are insensitive to their needs. The Mahur Gwalya rayon factory indicates that the political leadership in the state lacks any plan for growth. The Mahur Gwalya rayon factory indicates that the political leadership in the state lacks any plan for growth. Friends, electing the congress and communists is like giving a license to their leaders to engage in top level corruption. Right now, the entire nation is talking about a very big national scam of the congress. This is the Tugla Road elections scam. In Madhya Pradesh, crores of rupees bags of cash have been found. Detailed props reveal that the money trail reaches the house of a top congress leader in Delhi's Tugla Road. In Madhya Pradesh, crores of rupees bags of cash have been found. Detailed props reveal that the money trail reaches the house of a top congress leader in Delhi's Tugla Road. Do you know who stays in Tugla Road in Delhi? If you thought it was bad, wait for the next part. The money that was being looted was meant to be used to provide nutrition to women and children. Can you imagine how similar they are? After so long, they form a government in a state, but they utilize their time to grab money. Instead of serving people. You might have thought it was a very bad thing. The money that was looted was meant to provide nutrition to women and children. Friends, Kerala's culture has come under immense attack from L.D.F. and India. Kerala's culture has come under immense attack from L.D.F. and India. Friends, Kerala's culture has come under immense attack from L.D.F. and U.D.F. Kerala is a land of peace and harmony, but the insensitive communists and congress have brought a culture of political violence. Kerala's culture has come under immense attack from L.D.F. and India. Kerala is a land of peace and harmony, but the insensitive communists and congress have brought a culture of political violence. Several patriotic R.S.S. and B.J.P. Kharkarthage have been attacked and killed for serving the people. Kerala's culture has come under immense attack from L.D.F. and U.D.F. and U.D.F. Kerala's culture has come under immense attack from L.D.F. and U.D.F. I want to ask outdated communists and fake liberals, why are you silent on the political violence in Kerala? What are your compulsions? Why are you silent on the political violence in Kerala? Why are you silent on the political violence in Kerala? Their bullying will not weaken us. Why are you silent on the political violence in Kerala? Why are you silent on the political violence in Kerala? Look at what happened in Tripura. Their fear of communists was high. They were taking to worse violence. They tried to hide their poor governance, but the people gave them a strong answer. From barely any presence, we formed the government with record majority. People placed their faith in us. The same will happen in Kerala. I want to ask you to go to Tripura. They were also afraid of communists. They were taking to worse violence. They were trying to hide their poor governance, but the people gave them a strong answer. They tried to hide their poor governance, but the people gave them a strong answer. They tried to hide their poor governance, but the people gave them a strong answer. The same will happen in Kerala. It comes to women empowerment. The so-called defenders of women rights are the ones at the forefront of depending the brutal and barbaric practice of Triple Talal. They were trying to hide their poor governance, but they were not able to do so. The most brutal and barbaric practices of Triple Talal were the ones at the forefront of depending the brutal and barbaric practices of Triple Talal. But then these so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde gang to interfere in the faith and tradition of our land. These so-called liberals activate their entire network of fake NGOs, fake civil society, groups, urban-naxals, tukde gang to interfere in the faith and tradition of our land. Till BJP there, the force of the LDF and powers of the UDF will not be able to destroy Kerala's traditions. I want to say it clearly. BJP stands with Kerala. BJP stands with our faith. I want to say it clearly. BJP stands with Kerala. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. I want to say it clearly. Friends, Congress and Left have taken Kerala for granted. The people of the state have a big heart. The doers are open for everyone which is why some people are coming to take advantage of their goodness. The doers are open for everyone which is why some people are coming to take advantage of their goodness. Beware of those people who come to Kerala. Not to serve you but to save themselves. Those on bail themselves for tax fraud are coming to Kerala for their own political bailout. Those on bail themselves for tax fraud are coming to Kerala for their own political bailout. Friends, over the last 5 years India has made sustainable progress. But we want to work even more. Our Sankalpa Patra presents a comprehensive efficient for adding more speed to India's development. In the last 5 years India has done a great job. But we want to work even more. So our Sankalpa Patra presents a comprehensive efficient for adding more speed to India's development. On the 23rd I urge you all to vote for NDA. I specially urge first time voters. All your life you saw NDF and UDF disappoint you. This time give a chance to BJP. We shall provide the governance you deserve. Thank you for joining us in such a large numbers. Happy Vishu. Happy Ishtar. Thank you again. Thank you for joining us in such a large numbers. Happy Vishu. Happy Ishtar. Thank you again. Happy Vishu. Happy Ishtar.