Welcome to another edition of RCE again. This is Brock Palin. You can find us online at rce-cast.com And yes, we are still doing these episodes. I know it's it's been a we took a little bit of time off. We did some things and We are just going forward with this But I have on the other end as usual Jeff Squires from Cisco Systems and one of the authors open MPI Jeff Thanks again for helping us out. Yeah, we're back. We took a summer hiatus. That's what I'm saying. It's my story And I'm sticking to it So we are just one month away from SC. I just got my travel stuff done and I believe we will both be there Oh, yeah So I'm gonna be there too big party in Salt Lake and our our unnamed mystery guest Which you'll hear in a minute and I he'll be there as well and for the big big party in Salt Lake and I'll tell you I can safely say I am already being crushed by my super computing deadlines I have so many things to get done before then I have escaped the past couple of years of not having any Deliverables at super computing, but this year I've got a lot of them and they're killing me So yeah, we'll all be down there Um, you know, we'll be probably tweeting a little bit and other things like that You can find all those linked off the RCE dash cast comm website Also, you can find all the old back episodes on there and everything else and you can find a link to Jeff's blog Where he recently announced something about MPI 3. Yeah, that's right big deal. That took a long time in the making There's a lot of new interesting things Happening in the MPI 3 arena and they're actually being implemented in the future and a lot of interesting stuff there I won't go too much into it here But there there is at least one thing that we'll talk about MPI 3 a little later here in the in the show Okay, well here. Let's let's go ahead and roll into that our guest today is Steve Lionel how he works for Intel but He is here to talk about modern for training what the different updates of for train and what they've provided for Computing, so Steve why don't you take a moment to introduce yourself? Thanks, Brock up. Well, I've been in and around for trend for going on 35 years now. It only seems like longer I started back in 78 with the deck on backs for trend and I've Been working on compilers for for trend runtime libraries and now since 2001 I work for Intel and I'm doing Technical support for Intel for the compilers Part of Intel's developer products division and we do more than compilers we have Some nifty analysis tools that are certainly of use for Fortran programmers Okay, so let's get a little bit of background here Can you give us an idea exactly what Fortran is and what it aimed to do? Fortran was designed back in the 19 late 1950s as a way of letting scientists Write programs rather than than have Other people try to translate what their formulas into Computer language the name Fortran stood for formula translation and it was a pretty novel idea at the time The early Fortran Language as it was defined was really very small over the years It has become standardized became a initially in an anti-standard in 1966 And there have been several revisions to it since then see seventy seven seventy seven ninety ninety five 2003 and 2008 2008 is the latest Fortran standard it is it was designed with operations that scientists and engineers and high performance people like to use and It's still very popular So what is the main motivation for continued development? So I mean Fortran is pretty old It's very mature. It has a lot of features in it But what what motivates the continued development of new features? What do people? Need new basically and and why do you guys keep working on this? Well, the one of the great things about Fortran is that it allows you to mix old code That code that was written 40 or 40 years ago will still compile and run in today's Fortran compilers but people also want the things that some of the other whooper snapper languages have such as derived types polymorphism dynamic allocation parallel processing and We're responding to the needs of the community that are developing applications and they want to use these in Fortran So the standard has evolved So why is Fortran so popularly used? I mean, it's it's an older language People's any like, well, don't we have anything better? Why is it still so popular? Well, it's it's saying that it's old is perhaps Not really good. I mean, I'm old, but I hope I'm still useful The The nice thing of the benefits of the Fortran language are that it tends to allow you to create very efficient programs that run fast it has types of operations that are very commonly used in high performance computing such as arrays and Derived types and other things and it is compatible with an enormous body of tried and true Fortran code that's been written over the years and decades And it's just you know, people are familiar with it. It it works and it doesn't have a lot of the Messiness that some of the other languages have Tries to be clean. Although the standard keeps getting bigger and bigger Now, how do you tread the fine line there between, you know, staying away from being messy? But still using, you know, some of the features from the young whipper snapper things like types and Polymorphism and all those things the way the standards committee has tended to work it is that They say, okay, we we're looking to add something such as polymorphism So you look at that you say, okay, well C++ is Established and they've got polymorphism What from see what concepts from C++ work? Which ones could be could we make look Fortran like and which ones are pretty messy that we don't want anything to do with and It's it's a give-and-take. It is compromises and so for example with polymorphism Fortran has the equivalent of destructors and Fortran. They're called finalizers, but it doesn't have C++'s constructors Although you can sort of create one So sometimes there are little things left out they try to make fit it into the Fortran view of the world and That allows existing Fortran programmers to adapt these new features without going crazy Now I'm on the MPF forum and so I'm well familiar with how Complex some of these discussions can get in a standardization body kinds of things But maybe could you lead us through this a little bit though? So the idea of having destructor but not a constructor give us a little bit of the flavor about What was the rationale that led to that decision? well, I was I wasn't part of the discussions at that time, but my understanding is that they couldn't agree on the particular semantics for some operation that happens off independently when you bring a variable into scope, which is what a constructor would be and Decided that you they would add to the language features that you could essentially write your own constructor that did whatever Setup needed to be done As I said, I wasn't there at the time with they talked about that so I don't know why Finalizers destructors were hard enough as it was and perhaps they ran out of time I don't know sometimes when something when they decide that we just can't keep adding more stuff They said we'll defer that discussion to a later standard and that has happened in the past So these different updates to Fortran Has a focus use always been scientific applications or is this also are they looking to have you know kernels written in Fortran for You know whole operating systems The focus has absolutely been HPC in engineering It is there's never been an intention for Fortran to be the universal language and in fact Fortran I think is unusual if not unique in Embracing the concept of mixed language programming with the C interoperability features that were added in Fortran 2003 You know many programmers had mixed Fortran in other languages over the past but always using extensions That different vendors had implemented and now there is a standard way of doing this so there is this notion of Fortran isn't every the solution to every problem and by keeping focusing on HPC in engineering and scientific programming we can make Fortran to be excellent for that and not Diluted with concepts that are not that are foreign to the Fortran world Okay, but along that same line. Have you had much focus adding features to the language that are specific to Helping out doing math and you said you'll formula translation Sure. Well, there are certainly array operations. It was a new thing in Fortran 90 and That has been expanded over time. There's the concept of Elemental functions where it's a function that takes a scalar But you pass it an array and the compiler essentially calls it on every element. There are a reduction Intrinsics there are Many types there's floating point control. There was IEEE floating point standard support added in Fortran 2003 Many of the things that the HPC programmers had been struggling to use as extensions or operating system specific things that Were added into the Fortran language so that you could write standard conforming and portable code That use these features now one of these other things that is Kind of the relationship to MPI now There's no direct relationship to MPI in Fortran But on the MPI forum, I was part of the whole new Fortran 08 bindings for MPI and that turned out to be an incredibly complex topic for a variety of reasons but It created the opportunity for a great collaboration between the MPI forum and the J3 committee which is the Fortran standards body and We were very pleased that the J3 committee actually added some things to Fortran that were very helpful to MPI That enabled a new much stronger robust Set of Fortran bindings. Can you comment on that process at all? Sure. I was sort of sort of involved in it The Fortran committee has long had collaborations with other standards bodies MPI open MP and others and they we There were proposals that for things that MPI really needed in particular the equivalent of C's void star and the ability to pass Fortran arrays to some external library that knew how to Access the array and the dimensions and all of and things like that so we added to the Fortran language in a extension to Fortran 2008 called the technical specification on Expanded C interoperability there were Three basic things that were added one was a concept called type star which is essentially void There was dimension dot dot which means something that matches any rank of array and Dot dot was used because that's sort of a colon on its side both star and colon Had already had meanings in Fortran. So we had dot dot and there was a set of routines that could be called from C to manipulate Fortran array descriptors in a standard conforming manner and those things put together would help MPI provide a an efficient and easily usable library for use by Fortran programmers And then I think you also added a third thing to or you strengthen the definition of the keyword asynchronous too, right? Oh, yes, that's right there. That was something that was added in Fortran 2003 and Its meaning was a little bit ambiguous And so yes, there was some tightening up as to exactly what that meant allowing the compiler to do optimizations And not not losing optimizations when it realized that for example an MPI call might update an array after the call returned Yeah, for example like a non-blocking MPI receive where the user application specifies a buffer and we want the Fortran compiler not to do any optimization on that buffer until much later when The user pulls MPI for completion and says yes The receive has completed behind the scenes for you there But we had to you know indicate to the Fortran compiler that the buffer might be changing Behind the scenes and beyond your control for example hardware might be writing to it directly and things like that So this actually made non-blocking operations safe in MPI Fortran, which is a very very good thing Okay, so we've been throwing a lot of things out here and something I see a lot is from users like well, I need a Fortran 90 compiler well 1990 was over 20 years ago, so What are the current like modern Specifications of Fortran that have been updated since then The current version of Fortran the latest one that was adopted in 2010 is Fortran 2008 Which is a pretty large jump over what was in Fortran 2003 that was adopted in 2004 And it was a pretty large jump over Fortran 95, which was adopted in 97 There are no full language Fortran 2008 compilers out there none There are two full language Fortran 2003 compilers IBM and Cray IBM for their their AIX systems and cray for their Cray OS systems not the ones that run Linux Intel is pretty close with Fortran 2003 and we have a bunch of Fortran 2008 features but we're not fully there yet and some other vendors are at varying stages in Fortran 2003 compliance the fact that Some eight years after the adoption of Fortran 2003. There are only two 2003 compilers out there has Caused the standards committee to sort of caught pause Adding new features so the next revision of the Fortran standard will not Have a whole bunch of new things so is this like Taking are the different compiler manufacturers kind of like taking what they think is the most likely to be used features Well, we most of them well depends on the vendors the Hardware and software vendors the commercial vendors look to their users and say, you know, what are you looking for and Intel and and the others We listen to our users and they say we want to use this feature And then there's some other features that they are not asking for and I think the two Fortran 2003 features We care least about our user to find drive type by a oh and parameterized drive types Which we haven't implemented and many of the other compiler vendors have not implemented I think only cray and IBM have those But it is a case of listening to the users and this is also why Several of the compilers have implemented some Fortran 2008 features because our users found those more compelling than the missing Fortran 2003 features So your personal opinion if I was going to be writing a new for Fortran code today What's the newest standard I could write to to make sure my stuff was usable across the largest amount of platforms. I Think you would find that Fortran 2003 would meet your needs there are quite a few compilers that Implement the most useful parts of Fortran 2003 There might be some you might want to steer clear of those features that aren't implemented There's this great table. That's updated. I think quarterly in the I triple EACM Fortran forum magazine That is a list for a whole bunch of Standard features which compilers have those features and any limitations there So I would certainly recommend checking that out if you want to know Which compilers support a particular feature I will tell you that for the Intel compiler We document in each release which Fortran 2003 and 2008 features we support and that list does grow with each new version So on a similar vein but according to my own bias here For the three or four Fortran 2008 features that MPI can exploit What do you see as the implementation timeline or if you can even comment on that for Intel? And what do you think the adoption rate of the others will be? Well, that's this bad question should I not know it's a it's a great question. It's one I get all the time. Okay We are Definitely looking at Fortran 2008 features to implement We of course like all vendors have Sort of limited resources. We can't do everything instantly So we have to set priorities and it's going to take some number of years We have committed that we will implement all fortune 2003. I expect that we'll eventually get to all of Fortran 2008 But it's going to take some time and we have to look very carefully at what our customers are are demanding and Which ones they want to use and which ones we think would be the most useful We did take quite of a big leap of faith in implementing the co-array feature from Fortran 2008 We're Intel's the only Vendor mainstream vendor to offer that at this time. Cray has had it for a long time even before it was standardized in Fortran 2008 and There's been a lot of excitement in the Fortran community over co-arrays G Fortran the part of the GCC tool suite they are implementing pieces of the co-arrays and There's an open UH compiler from Rice University of Houston. I think I'm trying to remember where they exactly where they are That supports co-arrays, but doesn't support much of Fortran 2003 so That's got a lot of excitement in the community because it's a new parallel feature when we will get that into a later question Parallel feature in the language and that's something new for Fortran Okay, so actually we've got a little bit of question about how these Editions are added to you know that we got all these modern versions of Fortran that have added all these features on top of the previous versions Should we call the old gray beard stereotype dead and we should call that done and If that's the case if there's not this magical panel of old Fortran gray beard setting these things Is it just Fortran compiler vendors kind of working together to set these standards or are there people besides compiler manufacturers having input into this? Absolutely, there are quite a few members of the Fortran standards committee who are Users they are from for example national labs universities governments and They often drive the proposals for what's to be at what's to be added There aren't quite as many Fortran vendors in the world as there used to be The Fortran standards committee is quite a bit smaller than it was. Let's say even five or six years ago But I was at the most recent or the most recent international Meeting that was held at IBM Canada in June In fact, there's a meeting of the American committee J3 going on this week out in Las Vegas So there it's a collaboration between the vendors and the users and as far as gray beards go there's quite a few young people who are using Fortran and Driving the process as well So let's talk about some of these new features here What what things have been added and say in in o3 and o8 and so on that are specific to Parallel or distributed or shared memory and things like that Well, it would be in 2008 was the first of those there are two particular features that were added to Fortran 2008 one is co arrays, which is a Partition global address space language that Provides for distributing an application and that is Distribution could be on a shared memory system or could be across a cluster and Intel's Implementation, which we layer on MPI Does support both shared memory and distributed memory? Implementations there's also a feature called do concurrent which I like to call a for all done right for all was a Feature from a discarded extension to Fortran 90 called high-performance Fortran and was adopted into Fortran 95 and it was an attempt to To make something that sort of looked like a do loop that would run in parallel Except that the semantics were so restrictive it could not effectively be paralyzed So in Fortran 2008 do concurrent was Provided and that looks much more like a regular do loop except that the standard says if you have this Then each iteration of the loop can be run in parallel and in any order And then it's up to the programmer to make sure that there are no loop dependencies The Intel compiler will parallelize a do concurrent if you ask for auto parallelization Now what's the relation then between do concurrent and open MP for example? There is no direct relationship Our particular implementation uses open MP underlying the do concurrent and auto parallel Implementation, but there's nothing specific there You of course open MP can be used in Fortran programmers programs has been used for many many years And is probably one of the more popular ways of getting parallelism in a Fortran program in a shared memory environment So is there a reason that I would use? Do concurrent over open MP? I mean now right now you said you're the only vendor I think that has done do concurrent and so for portability. I might still choose open MP But semantic wise or performance wise is there a reason to use one over the other I? Said we were the only ones who did co-arrays. I don't know. I'm sorry. That's fine I don't actually know what the state of do concurrent is across other vendors The programming model is different. You have to look at what your application needs some applications I mean if you want to think of it as difference between open MP and MPI that not every application is Perfectly suited for one or the other and there are some applications that use a mix of both and that's the way it is here You have to if you have something where there's a lot of computation being done Sort of individually in a slice and not a lot of communication between the instances of the code Then something looser such as co-arrays or MPI would be effective if you're simply doing something tight parallelization with with let's say a large array and Then do concurrent might be more useful as is open MP So Kory let's let's talk about Kory a little bit What what is the space for Kory verse like we already have things like MPI? That seems to be available on almost every platform and we also have things like one-sided memory operations You know shmem and other things Why why Kory why something else? well, first of all Kory is in the FORTRAN standard and therefore the the syntax and the use of it is standardized whereas MPI is is Mostly standard, but there are sometimes little differences in implementation among the different MPI versions The also co-arrays are well integrated into the FORTRAN language. You can do I O of a co-array You can call a routine and pass a co-array. There are intrinsics that Get information about co-arrays and you can sort of just using regular FORTRAN syntax reach out and touch piece of a co-array that's in another image with MPI you're talking about library calls and the compiler doesn't really know about What that library call does with co-arrays? There's much more the compiler knows a lot more about what's going on But doesn't it also put a lot of extra burden on the compiler to be aware of like the most effective way to Transfer data across different types of networks on different platforms rather than just being aware of like CPU architecture and things like that Well, the compiler doesn't really need to know about that That's more of an issue for the underlying transport layer and there are there are many possible Transport layers available. I know that G for TRAN and is they're using one and open UH is using Something up a P gas library. We use MPI. That's which is one possible thing We layer on Intel MPI which is an implementation We know about that has been optimized for use with different types of underlying fabrics so The compiler doesn't need to worry about that the compiler does need to worry about making it Efficient to do the communication and yes a good MPI programmer For example might be able to write a program that works better than a co-array program, but the co-array program is Perhaps easier to understand more FORTRAN like and integrates better with the rest of the FORTRAN language Do you have many customers who are writing co-array FORTRAN stuff because I I would love to hear about some real-world Expertise with us because I think we all agree that MPI is not necessarily the answer is probably among the most prominent and most used parallel paradigms, but it is certainly not the Only answer and is not the best answer for for many applications and open MP was supposed to be The big MPI killer and it kind of isn't and so is co-array FORTRAN posed to take over that space for at least some classes of applications I Certainly do know of customers who are shifting from MPI to co-arrays The semantics are close enough in many ways. It makes this sort of easy If you've already got an MPI application, you can probably start inserting co-array stuff without completely rewriting it That wouldn't be quite the case of with an open MP application I don't know that I can name customers, but I we do have some that are using them in real-world applications So is the new features for FORTRAN added anything to hook into Some accelerators or any type of third-party peripherals rather than traditional CPUs What we're looking at is the open MP committee is standardizing syntax for offloading work to a Some external processor of course Intel has the the new Intel Xeon Phi co-processors That we recently announced in our shipping now You'll see a lot of exciting things about that especially if you come to super computing Well, there would be a lot of customers doing presentations on how they used Intel Xeon Phi so far That's supported with Intel specific directives in the FORTRAN and C++ compilers But we are working with the open MP committee to standardize syntax for that and we will support the open MP syntax When that comes about the FORTRAN standard itself is not currently moving in that direction Okay, when you say that FORTRAN is not moving in that direction Are you talking specifically in terms of directives because I've seen You know advertisements from other compiler vendors saying you know touting their Accelerator support GPU support in particular. Is that done with the compiler specific extensions then and not Language, okay. I see yes. Yeah, they the other vendors who who have added accelerator support in In FORTRAN, they all do it with directives. There's various competing models The the FORTRAN standards committee is pausing about adding significant new features to the language And so the for the next revision of the FORTRAN standard, which is going to be called FORTRAN 2015 There are just a few new features being added the enhanced seeder or operability to help MPI is one of them and additions to co arrays is another one Okay, and that makes sense because you want to standardize on best practices not standardize on on new Things that haven't really been proven yet. So there's kind of a so if I can infer what you're saying and there's kind of a shootout going between Which one of these competing approaches is is going to work is that a is that a fair characterization? Well, there does seem to be some competition in that space. Yes Okay, do you ever see a Merging of ideas or that are the models similar that such that they could be combined into a grand unified model Or is it more of an either or kind of thing? Well, I'm not the best expert on this But my understanding is there's there is a lot of overlap and the differences are Significant but not a large part of the of the approach all of the approaches. I've seen Require the user to indicate a body of code That is to be offloaded to the co-processor the nice thing I like about Intel's model is that The co-processor is optional and that if you are running your program on a system that doesn't have an Intel Z on fi processor Then it will the code will just run on your regular Intel processor the x86 processor Whereas the the other approaches if you don't have the the particular co-processor that it's designed for you're dead So what are some of the Features that you would like to see added to the Fortran standard that are not quite there yet I would like us to implement. What's in the standard now? and I would let look to users to Help us find a direction for what need what they need to be added I think that Fortran is an incredibly capable language as it is now I've been programming in it for you know for decades and I write lots of things in Fortran that you might not Normally expect to be done in Fortran and I've seen customers do that too. I Don't think there's anything really that sticks out in my mind as Fortran is useless unless it has feature x y and z Okay, so one question I ask most software developers who we talked to here And this really has nothing to do with with Fortran or or anything like that But it's just a question. I like to ask people is what do you guys use internally there and in the Intel shop for? Version control for the code that you develop for the Fortran compiler and why I just love to hear people's different answers for this Intel is currently using subversion. We had been using what CVS. I think it is before that and We switched to subversion within the last year or so Okay, well Steve. Thank you very much for your time You'd be able to find this show online soon at rce-cast.com and you can also find all of our back shows there Steve where can we find more information about the Fortran standard? the Fortran standard of j3-fortran.org I believe is the Website for the US Fortran standards committee and that has links to the current standard and lots of information about the standard You could go to software.intel.com to find out about Intel's Fortran products and also our analysis tools that work with Fortran and Also, we have links in our sort of frequently asked questions to the Fortran standards and various other articles Okay, Steve. Thank you very much again. Thanks for your time Steve. My pleasure


Bruce Beardy, Nadijen Kaz, what's that going to make Nadounci? I'm going to be teaching at the University of New York and I'm going to be teaching at the Confederation College in New York. I'm going to be teaching at the Confederation College in New York and I'm going to be teaching at the Confederation College in New York. My name is Bruce Beardy. I am a member of Masgradam First Nation in Northern Ontario. I was hired here at the college, Confederation College, about, this is my fourth month now, and my title is Indigenous Language Professor. My passion is, you know, implementing the values of the Anishinaabe culture. Anything to do with culture itself and particularly the language is very important. I'm so fortunate to be able to speak my own language. It's my first language actually coming from Northern Ontario. And I'm proud to be able to speak it and be able to converse with other speakers of the language. I do communicate with the Ojibwe speakers. My dialect is a little bit different. It's known as Severn Ojibwe or other people know it as Ojikwe language. But it's more of an Ojibwe language than closely related to more of an Ojibwe language and able to communicate with the Ojibwe speakers around here and in Southern Ontario. So that's one of the important things that I believe that should be passed on from myself to my grandchildren and my kids as well. The only thing with that is, the only drawback about that is I'm unable to spend all day with them to be able to teach them the language or use the language on a daily basis.  I don't have three adult children now. My daughter understands when my wife and I are talking in the language. And anything that we say that's funny is she'll be the first to laugh. But my sons unfortunately are unable to understand it, not in the same capacity as my daughter does. And now, about my grandchildren, we try to speak them as in the language as much as we can. That's something that we regret that unfortunately we're unable to pass it on to our own children and then the grandchildren. I guess the excuse is that we are unable to spend, you know, hours, hours with them on a daily basis. But we try to spend as much time as we can with them. And we're also able to do it on a daily basis. I'm not sure if that's what we're looking for, but I'm sure that's what we'll be looking for. And that's something that we're probably going to be able to do in the future. We're going to be able to make the next year or the next year or the next year, and I'm sure that's what we'll be seeing in the future. And I don't think that's what we're going to be seeing. I'm not good at drawing... I don't get what I'm looking for, it's not good at drawing, I don't be good at drawing, I don't have an idea, I'm not good at drawing, I know what to do, I don't know what to do. I've been to the city and it's been great. I don't know what to do, I don't know what to do. I've been once, yeah, but it's too much. Yeah, I guess it ties into a little bit of what I was, the excuse that I was mentioned about not being able to see your children or the grandchildren on a daily basis. In my case, because we live out in the country too, there's not too much interaction that happens with the neighbors and there's nobody close by that speaks the same language as we do in the area that we live. And the only time that I'm able to use the language myself is when I'm either speaking to my wife or address speakers of the language peers that I work with or that I know or ran into. But in the case of using the language at home, we do use the language at home, my wife and I, and there's just the two of us now. All our children are living in the city and they do come and visit once in a while and our grandchildren are living in the city as well with their mother or their dad. And because of that, on a daily basis, I don't interact with my own children or grandchildren. However, when we do see our grandchildren, we try to use it as much as we can to use the language and they seem to understand it and at that time we're trying to repeat what we're teaching them or saying to them in the native language. The job that I'm doing at this point is to kind of maintain the native language, I guess, or start a program. However, there's not so much detail at this point to talk about that, but I did some research on other programs that are being offered, such as the one in Fond du Lac, Minnesota. As a matter of fact, I requested to visit that community and meet with people that are working there and these people that are working there are actually second language learners of the Ojibwe language. That was offered at the University of Minnesota, Twin Cities in Minneapolis. It's really impressive to see these people that are learning the language and from what I gather and the questions, the interviews that I did with the workers there. It was a full immersion program that they were taking and it's really impressive just that it works. When I talk to them, I talk to them in my language as well. They understand and they're asking me, they're talking to me in the Ojibwe language. It's very similar to my dialect of what they're learning. They actually did a lot of land-based learning and working with the elders. Everything that they learned, they were experiencing as students at the time or even as workers now. There's always an elder that speaks to them in the native language pointing out this is what is called and eventually be able to transmit the language themselves and they have accents and things like that, which is pretty cool. Just by looking at other programs and how I can adapt what they're doing and bring it into the college. The people that I talked to are more than willing to help out. I did receive some of the curriculum that they've developed, especially the one at the Minnesota there. They actually learned the trapping and fishnet making, that kind of stuff. They're learning the culture at the same time while they're learning the language. It's all holistic rather than just segregating the subject or the language itself. Hopefully, to create language speakers from the college here and expand and recruit new students and just continue on to make the language come alive and fruition, is that even the word? Something that can be passed on from one generation to the next and just to continue. Because it's a beautiful language, it's a spiritual language and it is quite different from the English language and it is verb-based or verb-based language and it's just beautiful. I don't know how else to explain it. Yeah, I think it's languages, Indigenous languages given to us by the creator is very important and as I always say, language is what makes the culture. I think it's, especially with my own language, it is a beautiful thing and I'm really proud that I'm still able to speak it and understand it and hopefully be able to pass it on to the next students. I know there's other people that I know that are non-native, that are picking up the language and they seem to really enjoy and appreciate what they can learn from that along with the culture. It's just different and it is a beautiful language.


Very pleased to be here. King is essentially a Swedish company, five out of the six founders are Swedish, so it's slightly strange that an Englishman is in front of you today. I'd like to start with a little show of hands, building on Henrik's presentation, how many people in the room have a smartphone or a tablet of their own? Nearly everyone, we are in Sweden after all. Of those, how many play games on their smartphone or tablet or have a partner who plays games? If you're slightly embarrassed about it. And of those, how many have played Candy Crush Saga? A smattering. Okay, this game was designed and built in Stockholm. We have another game, Pet Rescue Saga, designed and built in Malmö, we have a studio in Malmö. And those two games have essentially driven King from having maybe ten million players per month two years ago to over 170 million today. So it's been a kind of very, very rapid trajectory, driven by the smartphone. So very much again, reflecting what Henrik was saying. Over 675 million smartphones were sold in 2012. This is a photograph of the papal inauguration. It's not there yet. It was a photograph of the papal inauguration. It will be a photograph of the papal inauguration. And the point of the photograph, which you will see very shortly, is that in 2005 you have no smartphones in the audience. You may have a smattering of candles. And in 2013 you can see a sea of luminous screens up there. That just gives an indication of how prevalent smartphones and tablets have become. And what do people do with them? Well, again, building on Henrik, one of the reasons people read less on the tablet is actually they're playing games. Nearly 70% of tablet time is spent playing games. Nearly 40% of tablet time is spent playing games. These are massive games platforms. And King has really kind of come of age by building games that work across these platforms. And there are a couple of important things. First of all, we see a very similar bump during the commute. People can play Candy Crush Saga or Pet Rescue Saga on their smartphone as they're on the bus to work. When they get to work, they click and synchronize. And then when they're supposed to be working, they can have a sneaky play on Facebook of Candy Crush Saga and find that they're on the same level they reached when they were on their mobile phone commuting to work. And then when they're on their way back from work or when they've got home, they can click and synchronize again and they can play the same game with the same puzzle challenge, with the same virtual goods on their tablet at home. So you can play on any device you choose, which means more opportunities to play, which means more play. And we currently have just over 30 billion gameplays per month. So a billion gameplays of Candy Crush and our other games each day, driven by this cross-platform experience. And people do play the games anywhere. The number one place, and again, this may reflect some of the lack of reading, the number one place cited by our players for playing is in bed. That's what they do, I guess, last thing at night these days. We get actually a lot of emails from couples saying they're very grateful for Candy Crush bringing them back together. It's something that both men and women seem to be able to enjoy on any device at any time of the day. So, yeah, playing Candy Crush and the Pet Rescue in bed is quite popular. The other thing that's very important about the way King has grown is that the games are designed to be playable on multiple devices. That would be a bit like writing a book so that it can be read on a tablet or a smartphone. The games are typically kind of simple puzzle games, casual games, we call them. They're not complicated graphics with kind of alien spaceships and controls. We have to learn how to jump and skip and shoot in order to blow up an alien. They're very, very simple to play. You can play with one finger. We design so that the game can be played with one finger, which means that it's something that everyone can learn how to play. You don't need to be a teenager with hours and hours of spare time to learn how to zap an alien or whatever. Everyone can learn how to play our games. Our average or typical player is a woman in her mid-30s. That's the normal King player. And like 10 years ago, you wouldn't have found women in their mid-30s playing games. And this is driven by smartphone and tablet growth. People like the puzzles. These are some verbatims. The key thing here is that it's like Sudoku. It's a mental exercise. Solving a puzzle gives people pleasure. Playing gives people pleasure. Puzzle solving gives people pleasure. When you combine the two in a game like Candy Crush or Pet Rescue, that's a recipe for a good audience. And what we've done is we've taken these casual puzzle formats and we've added what we call a social framework. So we've made them connect to Facebook. And this is very important because when people play, they are playing both for themselves and they're playing with and or against other people. So you want to get further ahead in the game than your cousin or your brother or your friend at work. That's a good thing to be able to do. You also want for your own pleasure to solve the puzzle on level 33 or level 34 of the game. These are kind of inherent to play. It's always been the case. There's a very interesting exhibition exhibit in the Louvre in Paris. It's 2000 BC. It's an Egyptian hippopotamus, a wooden hippopotamus, which has some of those elements of kind of casual gameplay built into it. Dice and moving around the wooden hippopotamus. So this has been with us for a very long time. We've added this social layer. So for example, if you want to get from level 21 to level 22 in Candy Crush, you're invited to ask your friends to join the game and then you can go and progress. Or if you're feeling generous, you might give help to your friends who've got stuck in the game, send them extra moves. So it's a very, very social experience that we've built. And this map is very key. You can see where you are and you can see where your friends are and that encourages social interaction and the competitive gameplay I was talking about. Another thing about making a game social, and this could equally go for music or a book or anything else, is that it fuels discovery, which is the kind of posh technical word for saying cheap marketing or effective marketing. Through Facebook, people send out notifications saying they're playing Candy Crush or they invite their friends or they're encouraged to do so by the game. And this means friends recommendation number one, citation for joining one of our games. Number two, the Facebook news feed, I'm playing Candy Crush, I'm playing Pet Rescue, why not come and join me? So it's very important for building the audience, this social layer. It can also induce a kind of viral phenomena. And here we're looking at two charts. The red is Hong Kong, the blue is the United Kingdom. In the red line, Candy Crush saga went bonkers in Hong Kong. You couldn't walk in the street in Hong Kong without someone coming up and asking you, will you become my friend on Facebook so I can get some extra lives on Candy Crush? And you can see there's that kind of vertical incline in the audience size in Hong Kong. UK, we're much more reserved, we don't do that sort of thing, it took longer to build. Another interesting thing we saw in Hong Kong is that when people were playing collectively on the commute, so they were on the Kowloon ferry for example, people who had reached level 150 or above that, very proud of their achievement, they'd be playing with their tablet very, very open like that. Whereas people who are on level 20, 25, just starting, they'd be playing on a phone kind of like this. Extraordinary social phenomena there. So how do we get a lot of data as you can see from that? How do we make use of that? And making a game is both an art and a science. There's game design and there's science and a lot of data around how people are playing. I'll just give you a small example here. Level 51 65 in Candy Crush, it's called the Lollipop Forest. Level 65, the objective is clear all the jellies, so you've got to remove all the elements underlying the coloured image and do that within a particular score target. Here it's 310,000 and within a limited number of moves. That's the puzzle challenge you have to complete. This was not a good level because 40% of our customers who were at that level dropped out. They gave up. They couldn't crack it. So we changed the game slightly and actually all we did was move to a single layer of jelly rather than a double layer of jelly. So that's not the kind of thick translucent white. It's the more transparent white on those marked areas. And doing that meant that the dropout rate fell from 40% to 20%, so 50% reduction. So more people passed level 65. And then whoops, you can see this is quite tricky. This is time. This is number of gameplays. Each line is a month and as you move forward in time, you can see that there are more gameplays happening as we continue to make those types of improvements in the game. So tweaking, changing, optimising in that way means that you get more people to remain within your game more often. Right, another important thing about these games is that they're free. Yeah, we don't charge to play the game. Some people do play and they pay because they're just really into it or they've got stuck or they want to beat their friends. This is US and UK survey data. It's the same in Asia. This is Korean survey data. I bought an item because my friend was higher up than me and I needed to catch up. So typically, people pay in order to progress faster in the game. They don't want to try level 65 30 times. They just want to get through it straight away. So people pay in order to advance both for their own personal satisfaction and to get ahead of their friends. We also do a lot of traditional marketing, I guess you'd call it in terms of trying different price points and different bundles of virtual goods to see which is the best price to charge for long term customer value. So the level progress, what we charge, all a lot of data goes into the decision making around what we do there. The fact is, however, that most people do not pay. And the vast majority of people who finish the game don't pay. So Candy Crush in particular, 80% of those who finished the game last month didn't make a single payment to King at all. But this formula works. Being free, having a social element, mixing data and art works. And Candy Crush, top grossing game on Apple, top grossing game on Google, top game in terms of audience size on Facebook. So it's a good formula to use. And yeah, there it is. Art, science and making it social and viral. That's you done. Thank you.


and stevie farted stevie fucking farted stop sneezing on me acting really weird man acting really weird acting too weird man what's up guys and welcome to this video where we're gonna be talking about how to what the hell stevie know how to write a book outline for your nonfiction book now this video is primarily geared towards people who are creating a book outline for a ghost writer because that's personally how we publish we don't have time to just sit and write books all day so we hire ghost writers to write our books for us so it will be geared towards that writing a book outline for your ghost writer but it's obviously also gonna be able to apply to if you're writing a book outline for yourself because it's important just to create that foundation that structure that direction for your book before you begin writing it now the reason why your book outline is so important because like we said a million times before the number one most important part is the quality of your book and the only way you're gonna have a book that is as good as you want it to be that contains all of the information that you want is if you provide that to the writer now it also comes back to the key sort of psychology behind every writer which is no one will care about the success of your book as much as you do because they have nothing to gain or to lose from it if it is a high quality book and it does well right yet you have everything to gain so you're gonna give it your all so why would you put it into the hands of someone else who doesn't give a shit about it that's why your book outline is so important you don't want to leave the success of your book in someone else's hands who doesn't give much more than two shits about your book ok so you want to be in full control of the creation of your book which is why you really do want to pay for more than just an entry level writer you want to pay your writer more money so that they are more invested in your book the more invested they are the better your book will end up being so paying an extra few hundred dollars and having your book written will be worth it in the long run but we've talked about that many times before and we'll continue to talk about that in other videos this video is about your book outline now your book outline serves a few purposes the main thing you want to do with your outline is create such an extensive and in-depth outline where you do all the research so that your writer can focus on the quality of their writing so you don't want to have the writer be doing all the research and all the writing they're suddenly doing twice as many things and their writing is obviously going to suffer you want to do all the research for them and provide them with everything you want to create such an in-depth outline of everything you want because you've done all the research you've figured out what customers want in your book you want to do all that so that the writer can just write the content yes this is a lot of work for you there are no shortcuts if you want the best book you have to put in the work now let's get into the structure of a book outline which is the same as the structure of the entire book your book outline is really a condensed version of the full book now basically every single non-fiction book in the world consists of an introduction body chapters a conclusion and a resources page because you really should include that but that's the three main points introduction, body paragraphs and conclusions it's really that simple but it also applies to papers and essays applies to books now your introduction is by far the most important chapter of your entire book and therefore also your book outline it's not to say that obviously the body chapters are not important those are insanely important but we do believe that the introduction is the most important part of your book and the big reason it comes back to something known as the confirmation bias now I'm going to read the definition of what confirmation bias is according to google just so we don't butcher anything here confirmation bias is the tendency to search for, interpret, favor and recall information in a way that confirms one's pre-existing beliefs so basically confirmation bias is where you're basically looking for things that align with your beliefs so in the introduction of your book you want to use the confirmation bias to your advantage so you want to instill certain beliefs in the reader right in the beginning of your book now this applies to like your book cover whether your book description as well so that when they purchase your book they're expecting a high quality book the beliefs that you want to instill is basically that this book is everything they're looking for this book will solve their problems this book will deliver on everything that's been promised this book is basically just going to be an amazing book and an amazing reading experience so this book will just be great so if they read an introduction that makes them feel this way suddenly going forward they're expecting that in the rest of the book anything that they find in the book they will interpret that way they will interpret as damn this is a good book everything they find but if the opposite happens if the introduction is just trash they're going into the rest of the book with the mindset that the rest of the book is going to be trash and then they will see trash everywhere in the book you could have the exact same book and only have the introduction be different a very good one or a very bad one and then they could interpret the entire information throughout the book completely differently and like worthy or bad useless and shitty the exact same information also with the introduction of your book it's going to be the first thing the reader reads it might be the only thing if it's shit they're like I'm not going to waste my time reading this book I'm going to go leave a bad review maybe what this comes down to in the end is getting a 5 star review versus 1 star review and then also them telling their friends about the book whatever that's what it comes down to in the end that's the purpose now after the introduction of your book come the body chapters of your book so your book should have around 8 to 12 body chapters that's just a rough number it could have 5 it could have 20 in the end that's really not all that important before a 30,000 word book which is a good standard to go by 8 to 12 is a great number for body chapters every body chapter could be in the range of 2,000 to 4,000 words really the point of the body chapters is to deliver the information deliver on everything that was promised by the book everything you promised in the introduction in your book description in your title in your cover this is the value this is the information this is what they're actually looking for now every body chapter in your book needs a clear topic and a clear message there should be no chapter in your book that's just like bluff or filler like there should be no filler in your entire book like that's what a shitty book is it's a book of just filler that doesn't actually deliver on what was promised and solve the year's problem now I promise you that your ghostwriter will fill your book up with fluff and bullshit if you don't give them an outline telling exactly what to write so to avoid your book being filled with just filler nonsense by a ghostwriter you need to do the research for them and tell them exactly what every chapter is going to be about and then the key points and messages you want to deliver in every chapter now how do you find out what every chapter should be about you need to do research you need to do customer research to figure out what your readers will want to learn in your book and how do you do this customer research so there's two really good methods or resources for you to use one look at the table of contents of other super successful books in your niche so you want to look at these table of contents that's basically their book outline so you want to use that as inspiration for what a potential book outline could look like for your book and then the next thing you want to do is look at the reviews on these books I think that Amazon Reviews is one of the best resources that you have to look at to figure out what's working for other books what isn't and what people want in a book the most useful reviews to look at are actually 3 star reviews so not 5 star reviews because often with 5 star reviews it'll be like fanboys saying I love this book or fake reviews or fake reviews or fake reviews as well a lot of those all they say is this is amazing yeah they won't give any like actual good feedback for you saying exactly what part they like that it might be legit but you need something to work with and then 1 star reviews are often just douche bags that had a bad day like uh fuck you this book is trash it wasn't perfect so 1 star you can't use that for anything there's also not feedback there it's just this is trash don't ever buy this the 3 star reviews that's where the money is in the 3 star reviews the 3 star reviews are the most helpful and useful thing I've ever read every single one they're saying oh I like this about the book I do not like this you should improve this this was good like they're basically telling everything that they would like to have had in the book just take that and use it in your own book 3 star reviews are the best thing you could use for this 4 star without a doubt so those are the two things you want to look at to figure out what should make up the body chapters of your book then after the body chapters comes the conclusion all you want to do is sum up the book and basically let the reader know that you've delivered on everything they're looking for and then also ask for a review basically don't fuck up the conclusion because most people will read the book and leave the review after so if you leave it on a bad note they might not give it the 5 star that deserve or just make it good enough obviously every part of your book is super important and then at the end you want to just add a resources page so that it basically just adds credibility to your book so that you can see like everything stated in here it's not bullshit it's not nonsense it's not something to pull it out of my ass I've done these like website articles and scholarly papers or whatever yes it's just important to have at the end of your book but the final thing I think we should do is look at the template that we use ourselves for our book outlines that we write for our ghost writers guys we're making this as easy for you as it possibly can get right we're doing as much work as we can now there's obviously more things to discuss about like what goes into your book I don't want this to be like a 60 minute YouTube video so we talk more about that in another video or you can learn about it in our course you can check out the free training for that down below but in the course we provide this template that we're about to look at it's a 10 page template that basically just it's a plug and play you fill in everything it's hard to explain let's just look at it instead of trying to explain alright here we are at the computer now and we're about to look at the template that we use ourselves to write our book outlines and this is the same template that we provide to all our AIA members for them to go through where we also in depth show you how to fill it out and how to use it for your own publishing business but for the sake of this video we're just going to go through it briefly so start here with a little message for your writer we just let them know basically our expectations and that we're looking for something super high quality so basically if you can't deliver on this get the fuck out spacey like we're basically setting a standard like this is what we expect it's a little intimidating so if they're not up for it then yeah we'll find a different writer then we quickly explain about what we want then there's the 5 key elements that this book needs to focus on to be the best that it can we can make another video talking about this info focus organization flow language blah blah blah and then a few things that we do not accept in our books then really the premise is quality is everything and then next we move on to the book overview simply gonna be delivering the information that they need title, subtitle, author name, the word count target audience this really helps knowing who you're writing for then information like problem that led the customer to purchase this book this gives your writer a very good idea about how to deliver deliver the message solution to that problem a brief summary this is all what you're providing to your writer okay so this is all created with your own research then the top 5 competitive titles then next we get into the chapter by chapter outline the introduction that we talked about that is so important we've broken the introduction down to an 8 step process that really gets everything done that you want with your introduction now how do you do each of these steps this video would be you join AIA and you learn how in there and then we get into the body chapters and then basically like we said before the body chapters point is to deliver on everything that was promised in the introduction so this is where all your research goes so you figure out what chapter 1 is about and then what we did not mention is with like your chapter title you want to create a very compelling title for your chapter you don't just want to call it for example chapter 1 the basics to keto diet you would want to turn it compelling to something like the basics of keto diet that everyone needs to know before they can get started like it's the exact same thing but it just makes you want to read it so you provide bullet points also known as key points that are all going to relate to the message of the chapter provide some notes for your writer and then the resources aka links which are very very very important this is where you found all the information that you want in your book giving it to your writer so again like they don't have to do any research you're giving it to them so like this is the information I want in the book because like keto can be for example keto can be approached from a few different angles you're telling them I want you to spread this message in this chapter from this article and that's also why the resources section of your book is very important because it is coming from the internet and then the same just repeats for all your body chapters title, key points, notes, resources down and then finally a conclusion which is basically copy paste so that the writer knows how to just how you want your book to end to be summarized, wrapped up, yes and then finally the resources page you just want that created in APA format and then the last thing that we like to add is a section explaining the most common reasons for bad reviews of books in our niche and that basically runs through the ten page well nine page outline template that we use for our books that we deliver to our ghost writers so that they know exactly what the fuck we want our books to be about Jesus Christ you talk a lot huh so there you have the perfect outline template that we created that's what I'm saying you just want to talk we're reserved for APA members magic emoji of the day is hopefully that doesn't sound bad when I pick it up but the microphone it might sound like shit when I'm going like this don't do that what's the point but as a whole like audio level 100 when you use the blue yeti mic link down below to get yours I'm joking but actually like that's a helpful link like if you ever want to record some shit like your own audiobooks you can do that with this mic comment like subscribe now I know after watching this video you're thinking holy shit wow this is a crazy ass video I can't believe you did all that work for us you're welcome see you guys in the next video check out our other videos on our channel hey 2.0 fake the black


So I feel like between the two, if I were to swallow the assumed chalk on one of these guys, I'd rather go Rory than Speeth. I think the concerns around Speeth are more glaring, is the way that I'd phrase that, because of what you said at the off the tee play. So I'd rather go Rory among the two potential chalk guys, what about you? Yeah, certainly just because I am virtually guaranteed I am virtually guaranteed strokes gained off the tee from Rory. So what I'm struggling with with Rory is that he did win the Wells Fargo, but it wasn't like the- He wasn't lights out tee to green. It also was like- He was like tee to green. He held off like Keith Mitchell, who kind of just choked early in that final round. There wasn't a ton of pressure it felt like on Rory. I don't, you know, we're objective. We try to be as objective as we can here, talk about the data, but you know, I think if Rory was fifth there, it would be a little bit, there'd be less appeal, even though there'd still be plenty. So I do prefer Rory from a statistical standpoint over Jordan Speeth, but I'm most likely leaning toward not having either in my player pool for this week.