VA Informatics and Computing Infrastructure- 13 -Department of Veterans Affairs   VINCI-041112

**Department of Veterans Affairs**

**VA Informatics and Computing Infrastructure**

**Optimizing your SAS/Grid Experience**

**Mark Ezzo**

**Kevin Martin**

**April 11, 2012**

Moderator:  Presenting for us today, we have Mark Ezzo.  He is a VINCI SAS administrator.  Mark has been using SAS for over thirty years in a variety of industries and has been a SAS developer, administrator, etc.  Mark’s educational background is in economics, political science, with a concentration in law.  Joining him today is Kevin Owen Martin; he is a SAS/Grid project manager, and Kevin has been a VA employee since 1997 and has worked virtually from home since 1999.  He is technically part of OI&T in headquarters.  At this time, I would like to turn it over to our presenter.  

Mark Ezzo:  Good morning or good afternoon, whatever the case may be, nice to see everyone again.  We did a SAS/Grid introduction before, but one of the things I’ve noticed—and this is quite common—is that though there are people getting on the grid, they’re probably not getting on the grid in the most optimal method.  What we’d like to do, Kevin and myself, is present more easy ways to do this, ways that will allow you to take full advantage of the grid world.  We have a short presentation, but mostly this is going to be a live demo, which I believe is far more effective.

This is essentially is what we’re going to be doing today: a little overview, our user interfaces, grid enabling with existing SAS codes.  Then we’re going to give examples in Base SAS and Enterprise Guide and then sum it up.  Now, we’ve neglected to do Enterprise Miner because that could be a whole course in itself.  We’ve had requests for it, so we’ll probably do that in a future seminar.  

Most of the users out there are Base SAS; Enterprise Guide, I would say, is probably fifteen to twenty percent but seems to be growing now.  Enterprise Guide is SAS’s preferred method of grid access, and we’ll demonstrate why, though you can use Base SAS to your heart’s content.  This, many of you have probably seen before, what VINCI is; VINCI Research Infrastructure, a leading-edge research venue utilizing SAS and SAS/Grid.  We also have Stata, SPSS, R, and several other bits of software; Natural Language, you name it.  

We guarantee security of data and privacy of data.  We’ll show you later how we secure your data via SAS and SAS/Grid and using Active Directory in the Windows world.  Today’s grid we’re going to be doing is primarily the 9.2 Windows grid.  We are still deciding on venues of either Linux 4 or Windows, but either way it’s going to go up to 9.3.  The 9.3 Linux test grid we have now is operational, but we’re not letting users on.  However, we will be asking for people to be part of a test group.  

We have remote analysis capabilities, new methods for researchers to perform research remotely without removing data from the VINCI system, very important.  We’re preparing for future data capabilities; we are preparing every day.  We have new methods of FTP, as an example, new and easier ways for researchers to optimize their whole experience.  This, many of you may have seen before; essentially the Windows SAS/Grid, which is grid version one, which is 9.2.  Has ten nodes and has controllers—this may mean a lot or nothing—CDW SQL server and VINCI SQL server, which we can enable in a SAS/Grid world via the management console.  The beautiful thing about a grid, as many of you know, is we can build it up; we can add another five nodes, and the grid is totally operational while that’s happening.  If there are problems, we can actually remove some of the nodes and do whatever we need to do, or perform maintenance or whatever’s necessary without affecting the entire grid itself.  As I just said, now it’s a ten-node cluster, 2008 R2.  Grid 2.0, which is 9.3, is a six-node RHEL 6.2 Linux cluster with the modified clustered file system architecture.  It’s very good so far; we’ve had a few hiccups with it, but that was due more to the network than the actual SAS environment itself.  In fact, both environments have been rock solid since we’ve [inaudible] them up.  

Again, we’re going to look at a Base SAS example and SAS Enterprise Guide example.  The SAS Enterprise Guide is probably the easier way to go; however, if you still prefer to stay in Program Manager and Base SAS, that’s entirely up to you.  It may not be the most efficient way, but it’s quite usable and is still very efficient.  We’ve discussed this before; we have new add-ins for Microsoft Office, where SAS essentially becomes part of Excel, or Word, or PowerPoint, or Outlook, as you please.  I’ve used that quite extensively at several sites.  As an example, you can use Excel as a front end or to launch a SAS process in the background.  What it does is, it correctly multiplies the effect of Excel by utilizing SAS.  Nine-three, we’re going to utilize this quite a bit.  

Nine-three, rather if it’s Windows or if it’s Linux, it doesn’t matter.  We’re going to introduce a lot of stored processes, and what we can do with that is you can essentially design a SAS program or a SAS system for general consumption.  You can do that through a Web browser, which means you can have parameters; people can add to their parameters, the usual front-end UI methodology, and SAS will pick it up in the background.  Therefore, not everyone needs to have SAS to use your work.  That is a very nice addition.  

Let’s summarize what a grid is.  A grid is load balancing and parallel processing, very nice support for a very large SAS community.  If you have a small program—for example, I know folks who do very simple analysis—you’re quite able to stay on the servers themselves.  VINCI has a server and PCS has a server, and there’s no problem with doing very small things there.  The larger and more complex your programs are or whatever you’re trying to attempt is, that should push you out towards the grid.  

The smaller the program, you can actually have a detriment using a grid because it takes longer for it to go on.  I’m saying longer, I’m talking about seconds.  We can re-use existing SAS programs, as we discussed.  There’s a very small learning curve for immediate value or submit legacy code immediately to the SAS/Grid via the GSUB Server, which comes in 9.3, or as we’ll show you later, with the simple five lines of code and connection to the grid.  We have high availability/automatic failover, which means that unless someone unplugs us or something very dire, we should not be going down.  As far as Kevin and I are concerned, the administration is very easy, which allows us to quickly help and support our users.  Now, before we go to our examples, do I have any questions at this point?

Moderator:  We have had one question come in.  They would like to know what your definition of small is.

Mark Ezzo:  That’s a very good question.  If something for example is, say, fifty thousand records of not great width and you’re really only doing, say, one PROC against it, I would just keep it either desktop or server.  If you’re getting into the millions of records, even if you’re doing simple ETL work, which others would call segmentation, you really want to go out to the grid.  But something that’s very small or on a small subset or sample, you can easily keep up on the servers themselves.

Here are the classic five lines of code, and we’ll see this in operation later.  This is the simplest way to get on.  You can take any program you have, and we’ll show you.  You essentially put these in front of it—we’ll give you all the code for the definitions here—and this will submit it to the grid.  Now, let me say this.  While you’re on the grid, that does not mean that you are in parallel or balanced processing.  You are taking a SAS program, which runs the same way it does on the server or on a PC, and you’re just changing your venue by putting it on the grid.  While this is not a bad thing to do, you’re not taking complete advantage of the grid or the parallel processing.  You’re more than welcome to do that.  

If the grid is your only venue of SAS, very small programs can get there, and that is not a problem.  But if you have a large program, it’s not the best way to do it.  We also can set you up with very simple [text] in an external file, and I give an example here that some of us do.  You can even set it up to a function key where you just do a simple gsubmit and include it all entirely at your behest.  Kevin and I, we have it in documentation.  We’ll show you where that exists, and we’ll be glad to assist you with any questions or any help later, just by a simple phone call or email.  

Moderator:  We have had a few more questions come in.  The first one is, how do we get the SAS add-in for MS Office?

Mark Ezzo:  People who want that, please email me later and we’ll get you all set up.  We’ll point you in the right direction.

Moderator:  The next question, we want to have the notes.  Do you have any code for that too?

Mark Ezzo:  Yes, we’re going to show you code.  There’s a lot of code out, and this is a very good time to show you right here.  We have a Web site for SAS, share point site, which has tons of documentation.  We have the complete SAS documentation for 9.2 and 9.3.  You’re more than welcome to look there, and if you have any questions please give Kevin Martin or myself a call.  We have complete documentation, and we put code out there.  As time goes on, I’m going to put out macros and programs to assist.  Any questions or comments, please email me directly.

Here’s something important; this is what we spoke about before.  It tells SAS to use a grid.  Now, again, we’re going to show you this live.  We will create a custom project server—that’s a workspace server—that is authorized for an individual or a group solely, and we will create on the grid workspace for them.  We will show you the creation of that.  That has to come through when you go through proper channels, whether through PCS or VINCI.  Once everything is approved, we will get you set up with a custom project workspace server, and we’ll set up an area for you on the grid itself.  All you need to do is tell us whom you would like it restricted to, and we’ll take it from there.  We do all that through the SAS Management Console.  Again, I’ll just run through this quickly.  Here we have parallelized workload balancing, and what that means is if I had prepared a large amount of data, and let’s say I wanted to do three analytical procedures against it simultaneously, this would be one way to do it, or in this case two.  Essentially I would have sign-on to the task; I would have the data saved.  Here would be the first task; here’s the second task.  They would run at the same time.  We wait for the task to end, and then we continue.  Then we can go back to local executions if we so desire.  Enterprise Miner—just a quick note—will do that for you automatically.  

This is a very simple program; this is an example from SAS itself.  Here’s the original program, and here’s a grid-enabled program.  Essentially it took the same program and did what we just discussed: sign-on to host1, sign-on to host2, run it and rsubmit, signoff_ all_.  In this case, we’ll be not using SASMain but SASApp.  You must be in the proper upper or lower case.

  Now, we have a problem here.  There are tons of existing SAS programs out there; many are long and complex.  Some of them are quite old, and in many cases the original author is no longer with us.  We’ve had advances in computers and SAS, obviously.  For example, when some of these were written there was no SAS metadata or Enterprise Miner/Guide.  Many of the existing programs can be more efficient, obviously.  Manual improvements can be very time consuming and costly.  So what does SAS give us?  SAS in 9.2 has something called [PROC SCA] code, and that’s a SAS code analyzer.  We will demonstrate that.  What it does, it executes an existing SAS program; it analyzes the job steps, input-output data and dependencies, and records information used to enhance efficiency and manageability of the program.  The limitation of it, though, is at the moment it’s set for three.  We’ve written a little procedure that allows you to take as many as you like, as many as there is out there, though I don’t recommend that.  I’ve had several people enhance to ten or beyond.  That we will demonstrate.  

Now, we are going to give a live example.  First of all, let’s talk about how we set everything up.  Once you have a project—as you can see here we have several projects—we will give you an area.  For example, we have a [MERCER] area, and let’s look how that’s constructed.  These will all look the same; you’ll have data.  You’ll have Enterprise Miner projects, and you’ll have programs.  This will be shared only with the individuals in that group and with the SAS administrators, Kevin and myself.  No others can access this unless you make a request to us, and we will allow it, as does happen on occasions.  That’s a standard setup.  Once we get the request, we give that to you.  

Then what we do is we have down here a server manager.  Now, this is called a workspace server, all right?  We set this up for your group with the same restrictions.  You use this in Enterprise Guide, and you use this when you do batch submits with the five lines of code.  This way you’re totally secure.  We know where all your work is, whether it’s Enterprise Guide, Program Manager, or Enterprise Miner.  No one else can get to it unless you authorize it to us.  Now, you can use these for multiple projects.  For example, some people, like [inaudible] 01, just wanted one for themselves.  But we can actually individualize that, and there really is no limitation.  That’s true in 9.2 and 9.3; we’re on the 9.2 grid right now.  One advantage of this—you would say “Why would you even want to do this?”  Well, for all the security reasons and the ease of use we talked about.  We have a lot of data that’s already authorized within the grid itself, and we can add more.  We can add as much as we’d like, and it can even be your data.  We can keep it so it’s for your consumption only.  What we do—and you’ll see that later—is we can attach whatever data you’re authorized to and connect that to your workspace server so you have that ready to use at any time.  Let me say this; that does not preclude that you cannot use live names.  You can access your data in SAS exactly as you did before, whether it’s SQL Server or SAS data.  This just makes it a lot easier.  It also allows us a little bit more control.  Again, the control we have as far as SQL Server is concerned is through Active Directory.  That’s a single sign-on, which allows you to see your tables and your schemas out in the SQL Server world.  We have, as you can see, a lot of data, a lot of SAS data right down the line.  That is the administrative portion, which we have spoken of.  

Now, let’s go have a look; I am on RDS01, which is where everyone in VINCI will get into.  On the other side is PCS07; it’s going to be the same in either case, whether it’s SAS or Enterprise Guide or Enterprise Miner.  Let’s take a look at our five lines of code.  Before I begin that, one thing you all need to do is authorize your Windows password.  If you’re in VINCI, this is the way we suggest you do it.  To get to the operating system—because this is not a SAS procedure but an LSF procedure, which is the middleware for the grid—just put an x and a semicolon, and then all you need to type in is LSVASSWD.  Hit enter, and it’s going to ask you for your password and then to verify.  Just type in exit, and you’re out.  

Now, here is a very, very simple test; these are the five lines of code.  If you’re going to do this locally you can get to your grid data, but there has to be a network address.  While you’re in the grid, you can use the local address.  I suggest that you do that within the grid because if you use a network address you’re introducing a few extra layers.  If you do it this way, you stay completely within the grid.  What this does is I’ve created a library called g-data.  You don’t get much simpler than this in SAS, and this allows us to get on the grid itself.  Now, all we need to do is submit.  That shows that we went on to the grid, refresh, and I am running it on four.  That’s as simple as it is.  You can take any program of any complexity, any size, and get to the grid using this.  What it does not do, as we’ve explained before, you do not get advantages of parallel processing or balanced loads.  This is the very simplest way.  

Now, let’s take a look at Enterprise Guide for a moment.  When you get Enterprise Guide, you want to get on tools, go to options, and you want to go to administration because you cannot get on the grid until you set yourself up for it.  Let me show you how easy this really is.  Here’s a good example; this is grid single sign-on.  If I modify this, give it whatever name you like, description if you so choose, and you have to put in the grid signature.  The grid signature is just VHACDW_SASGrid1.vha.med.va.gov.  The port is assigned automatically; that allows you to get to your metadata.  Just click this button, and you don’t have to worry about changing your password.  You do have to worry about changing your password with LSF, as we showed you before with the x function.  

Once that happens, then all you need to do is save it.  We set active; we close.  We say “Okay,” and I am totally serviceable.  You will not see all this; I do because I am an administrator, so I see everybody.  Let’s take the most generic app server, which is SASApp, which is open to almost everyone.  What we’re doing here is connecting.  As far as programs, this is a very simple program that we saw before.  This could be, again, a program of any simple size or complexity.  If we want to change this so it’s enabled for the grid, we merely do this: analyze program, analyze program for grid computing, from grid.  Begin analysis; it’s done.  It may take a few moments depending on the size of the program.  Again, what we spoke about earlier was how this grid session is always set to three, so it’s going to give you three sessions regardless.  How it operates within the session, it goes through and does a little bit of analysis.  I’m going to show you a process that we devised ourselves that allows you to go well beyond that if you so choose.  

At this point, make sure that whatever you’re connected to is your selected server, and all you need to do is run it.  As before, we refresh.  You see this one says EG.  You use a job slot, but it releases it.  This is how we sign on through Enterprise Guide, the app server.  This is our actual job that we’re running.  You’ll see it’s gone to two nodes.  Kevin and I control this entirely from here; then it will go to a third node, and it’s very simple.  Another illustration that this has too, this is a very simple job.  If you ran this on a server on a PC, you’d be done by now.  But because we’ve asked for a three-session initialization, it does take a little while to sign on.  That’s why the more complex, the more benefits you get.  At this point, do we have any questions?

Moderator:  Yes, we have had a few more come in.  What do we need to do to start using the resources available on VINCI?

Mark Ezzo:  There is a whole sign-on process.  In fact, Kevin could probably speak to that better than I could.

Kevin Martin:  [Inaudible] VINCI Web site, you’re going to have to go through the approval process, which is not something that Mark or I directly control.  A good contact on that is Victoria Barrett; she can kind of get you started with all of those processes.  Assuming that your project is related to research, you are going to be channeled through the VINCI approval process.  That’s nothing that we directly control.

Mark Ezzo:  If any of you have heard of [DART], you can get on there and essentially you request a project; you request software.  Once everything goes through, I will get back and set you up as we’ve shown you before.  Essentially go to the VINCI Web site and just follow the numbers, really.  Any other questions?

Moderator:  Yeah, we have one more.  Can you tell us why we need to set up integrated Windows authentication?

Mark Ezzo:  Well, you don’t have to, but it’s highly recommended.  If you’re going to get into SQL Server, all of your data will be accessed via your log-in, your password.  You can save a profile by putting in your log-in and password and saving it, but then that precludes that you’d change it when you do change your password.  If you do IWA, then that happens automatically.  We also have IWA enabled on the Linux site too.  To make a long story short, the entire VA VINCI world is reliant upon Active Directory and domain controllers.  What that means is that everything that you’re authorized to or everything you can do comes off of your log-in and your current password.  So if you use IWA that just saves you a lot of time who can set up.

Kevin Martin:  Also, Mark, there’s nothing that they really have to do to set that up because it takes your credentials if you’ve already logged into the machine where you’re launching applications in the first place and it’s merely a checkbox.  If you want to use that approach, you check the box.  What that tells the system is to use your credentials that you already logged into the machine as, which makes sense because that way you don’t have to worry about keeping everything else up to date because obviously when you log into any given server, you’re going to be using your present credentials.  Otherwise, you wouldn’t get access in the first place.  It’s kind of a no-brainer via checkbox.  You don’t have to do it, but it’s the easiest approach.  It’s a matter of a simple click.  

Mark Ezzo:  LSF is a little bit different though.  Every time you change your password you need to go through this process again, what we did with LSPASSWD, as we’ve shown you before.  We will come back to Program Manager in a little bit.  Here’s your simple log that shows that we just processed everything; it shows you the nodes we processed on, what data was enabled these points.  Let’s go here for a moment; we see here that everything is finished, and we have a couple other jobs running up there.  In fact, we’re going to here from this gentleman by written word in a little while.  

Let’s come back; there’s your log.  There are your app servers.  Now, let’s go back to Program Manager; this was our simple test.  What we have now is what I call a simple grid code generator.  I did this specifically for Dr. [Raus’s] project, but many others have taken it and used it.  You’re free to get the code and adapt it.  When I get a little bit of time, I am going to take it and make it fool-proof.  Right now it’s a little bit cruder than I would like, but it was a quick and dirty idea.  What this does, it essentially allows people to find their projects, and it really sets up to whatever number the folks want.  In this case, we had ten running a macro.  What it does, we have a counter in here, one to ten; control the number of nodes desired here.  We do this through SCAPROC, and we set our rsubmits up.  

What we decided to do here—and this is a very good way to do it, but you can do it any way you like—is we have a macro [live] set up, and we put our program in here.  Now, what he was doing precisely was he was arranging many, many millions of rows of data for his use, and it was taking him—we’ll see this later—about sixteen hours to do it.  And we’ve gotten that down to about two just by using this procedure.  What I like about this is you can put all of your filtering code in your macro—and you can have a macro library out there—and you can pull the macros out and change them as needed.  You don’t really need us to do that.  This way you can control what macros come in and what code you can introduce.  

In this case, we only had one macro, so we just called it in and we used the counter.  We called this grid split; we ran it and finished it.  What came out was this.  As you can see, we set it up to ten, and it runs on ten nodes as you can see.  It shortens the time drastically.  It’s all written within SAS’s code; we just enhanced it a little bit.  Now, I can supply this to whomever would like.  We’ll put it out there.  This is an example that we just put out, just a very generic example which I give to many people because it’s essentially the same construct: your program macro, grid example, programs, whatever.  You can rearrange the sites where the programs come from and where the data comes from too.  One of the things Kevin and I noticed and SAS brought up is probably in the future they’re going to be doing something very similar to this.  We just happened to preclude it.  Let’s review a little bit of what we have; we have a simple test here with the five lines of code.  Let me say that you can copy this program into Enterprise Guide, and it will run the same way on your app server.  That is not a problem.  Also, you can take any program here and copy it and run it Program Manager.  The reason I say that is we do not need Enterprise Guide to run these; Enterprise Guide is just a good venue.  

For example, if you write a program, test it out here on Enterprise Guide, we can make it a stored process and do what we discussed before.  You can have it out there; you can have it accept what would essentially be macro parameters from any Internet session.  People can fill in the parameters; it will run to the data, and it will run in the background.  These people do not even need to have SAS.  And that’s a very strong component.  

Let’s go over here and bring up some different programs.  This is what we showed you with [SCA] code.  Now, let’s open a program here; let me just show you what the original code was.  If you do this in your code—this is how you can run this in Project Manager—if you put this in, you just record it.  And what it does is, it runs it and will put it out to whatever area you specify and will do exactly what Enterprise Guide is doing here.  

In this case, we’ve enhanced this a little bit and we just, as you can see, write it out, and it comes out to these modules.  For example, you pull this one out and you’re good to go.  Final result was this, just exactly what we showed you before.  Now, Enterprise Guide will not do that, not do it to this extent, but we can do it here.  Rest assured, if you are going to grid-enable a program, Enterprise Guide is far superior to just the five lines of code.  It may not optimize it completely, not to the degree that this will, but far better than just submitting a SAS job to it.  Now, we will supply all these procedures, and as you know it’s all out there on the Web site.  Are there any questions at this point?  Or anything anyone would like to see, whether it’s on the console, Enterprise Guide, or Program Manager?

Kevin Martin:  I would throw in just a quick comment on this, Mark.  The switch to get these to run in parallel is a major step forward.  Obviously we’re highlighting that because we feel like a lot of users aren’t using it.  However, it’s really something that you implement once you finish debugging your code and get your program ready to the point where you want to run it against all of your data.  It’s not something that you do right out of the box simply because you’re always going to be modifying things.  And the process that does create the script, it’s a much more robust script, and because of the complexity that it has in there, it’s pretty much easier for you to kind of lose yourself in it.  You want to do it at the end of your process and not at the beginning.  Just kind of be aware of that.  

When you’re happy that your process is doing what you want it to do and you’re ready to run it in, for lack of a better word, production fashion, by all means getting it to run parallel is the best way to go.  The best thing that you can do is that truthfully move all of your data extract steps up to the very top of the program.  All of your data files will be there, but if you get the extracts occurring at the same time on different nodes it brings all the data together and makes it available that much quicker, so you take advantage of the non-sequential approach.  I’ll try and quickly review that.  As you move things to run in parallel, that’s kind of the last step.  You can do it as you’re testing things out.  But truthfully, if you’re still developing a program, you can quickly get lost in the code that’s generated.  You’re better off doing it when you’re ready and you’re happy that the overall process that you’ve developed is ready to be run in a production fashion, for lack of a better word.  Then the best advice I can give everybody is to move all of your extract codes, your data steps, your PROC SQLs that are pulling records from different data sources, make that the very top steps because all of those different steps can be running sequentially on different nodes in the grid.  That’s where you gain your performance.  If you have different steps occurring at different times, just take the ETL steps, extract [strand form] and load, get them all up to the top of your programs.  Then when you run the process to create a parallelized program, everything flows much more quickly.

Mark Ezzo:  Another point to what Kevin is saying is you do not have to do your ETL in a linear method.  If you’re pulling from, say, five tables, and you’re creating five different data steps, you can do that all at once.  You can do that on five different nodes.  That’s why we’ve introduced the level of control that we have.  

As before, you would maybe have to pull a, then b, then c, then d, then e.  You can pull a through e simultaneously.  As I said before, so that it’s not just we who administer the grid speaking, here’s a user who uses this quite frequently.  What he’s talking about is the procedure that we developed, and he uses many, many millions—as most of us do—records.  As he said, it used to take him sixteen hours, a couple of days to run.  Now, he can do it in two hours.  This is very typical.  The larger the project is and the more you optimize, the less time it will take.  Again, don’t be daunted by this.  It’s really quite simple.  Once you do it once or twice, it will become second nature to you.  I’ve seen that happen with hundreds of programmers, everywhere from modelers to very heavily schooled programmers.  This is just one of several testimonies that we have to the effectiveness of our grid.  

Benefits, as we said: parallel execution, accelerated run times, easy-to-use tool, very easy to use.  This is SCAPROC we’re speaking of; it eliminates costly manual analysis, but it doesn’t hurt to do a little interpolation there.  It inserts the necessary syntax—that’s very useful—and accelerates your learning curve.  What many people do, as we all know, whether it’s Enterprise Guide or any other procedure, they may generate a few times, analyze it and adapt it for their own usage.  That’s quite acceptable and very common.  

Now, let’s talk a little bit about what it coming down the pike.  In SAS 9.3, for batch submission we have something that’s called GSUB.  What that allows you to do is—in these cases, whether it’s through Program Manager or through Enterprise Guide, you essentially are signed on while these are running.  That, of course, does not preclude that you can start different sessions; you can create as many sessions as you like.  But with GSUB you can run a program—and it could be an optimized program like we had, any way you like—and you essentially submit it and it runs on the grid without your interaction.  Let’s show you examples of what we have as far as queues are concerned.  We have several queues that we can submit you to depending upon what type of job it is.  We have mostly people going to the normal queue; we have priority queues which, if you have a job that needs to be run immediately, you can go to that or we can do that.  We have a checkpoint re-run queue if it’s a very large, complex job that may run for days.  You can see the priorities here, obviously the higher the better.  Nighttime queues, owners, several ways to go; this is Unicode, if anyone out there’s used SAS Unicode.  Not everyone is going to go into the same queue, though by far most people will go into the normal queue.  We have the ability to go in any queue that we like; we can idle the jobs, whatever needs to be done—utilities.  There’s a lot of flexibility for us.  Here’s our host, and again as an example, let’s pick one that no one’s on at the moment.  Now, if we go here and we use the LSF, you can see that this is closed.  If we need to take out a node, that’s as easy as it is and we can do whatever we need to do to it.  It’s just as easy if we refresh this; we bring it back.  There’s a lot that you can do, and you can control your queue to an extent in your code as we saw before.  There are lots of things you can add to this; this is just the simplest way.  You can even say what queue you want to put in here, and we’ll give you examples of that if you’d like.  Any questions at this point?

Moderator:  I believe we do have one more.  Is this grid also available for facility operations uses?  We have many people ready to do this that are not involved in research.

Kevin Martin:  We have added a couple facilities just to see how they are.  One of the things that Mark and I have talked about is trying to develop kind of an introductory phase to where we can assess the coding ability of the users—and we’re a little more skeptical of the ones at the facilities—just so we can understand how much we need to educate them on the use of SAS in general.  SAS is a powerful tool, but it can get away from you pretty quickly, so we’re trying to help people optimize things.  For now the operations folks have been for the most part relegated to the offices out of headquarters.  We have done one facility [inaudible] just to see how that went; so far, so good.  They’ve had a few problems with their code, but it wasn’t a disaster anyway.

Moderator:  We do have a few more questions that have come in if you’d like to address them now.  The first one is do you see the SAS grid to meet the SAS needs for all VA research needs?  You may be aware the OINT to get rid of individual SAS licenses.

Mark Ezzo:  That’s policy, which obviously I don’t deal in, and I’m not sure what the veracity of that statement really is.  I think there are two, three, four thousand users in the VA?  Could this grid handle four thousand users simultaneously?  No, it could not.  It doesn’t have that capacity. What it can handle at this point is 250 concurrent jobs.  We also have a very large server in the VINCI world with 980, which can handle a lot of jobs also which things are running on right now.  On the PCS side, we have—I think it’s a 580 PCS07.  We can handle quite a bit, but can this grid handle every SAS user if they were trying to get into it at the moment?  No, it could not.  I don’t think there’s a grid in the world that could.   

Kevin Martin:  I think the VA’s long-term goal is to eventually get everybody in here on this platform simply because it allows them to more easily manage all the funds that they’re distributing out to SAS because every little shop—and this is just my personal take—every little shop has a separate contract with SAS.  Because they changed the way that all of that has to get licensed now—not each individual shop can just go out and contact SAS and get a license; they have to go through the TAC and so forth.  The people that manage that whole process said, “We’d rather have it just centrally managed, and if we’re going to centrally manage it we’d like to have a central tool.”  This does allow us to do that.  But now, of course, what that involves if we were to get all those people on there, would be the purchase of a lot more servers to handle all the additional processing.  Of course, the grid can scale out, but the funds are basically going to get redistributed if it comes that way because of SAS charges based upon the number of CPUs on a given server when you buy a server license.  In order to add that hardware, we’re just going to rack up those charges.  But it would be just one central distribution of the funds as opposed to all these individual little shops re-upping their licenses.  

The memo that came out, while I think OINT kind of jumped the gun on that—what they’re essentially saying is they’re not going to re-up your license.  There’s a lot of confusion about what that means.  

You’ve got a VA license for SAS; the set in it is good for fifty years.  You can run that version of SAS for fifty years.  What you get with your maintenance fee is the unlimited free support and any free upgrades, whether the upgrade is from 9.2 to 9.3 or 9.3 to 10.0, whenever that comes out.  You would get that upgrade for free.  That’s what the maintenance fee every year provides you.  What they’re talking about is taking away those maintenance fees for the individual little shops.  That’s what that memo essentially said.  That’s what they’d like to do.  I don’t know that they’ve actually enforced that yet.  You could continue in your individual shops to run, say, version 9.2 that you have right now.  Whatever version you happen to have loaded, you can run that for fifty years.  But of course, eventually, it’s going to become outdated.  That’s just kind of the general history and some of the FYI behind all that.  They would like to have it all centrally managed is what it comes down to.

Mark Ezzo:  May I say also, as an economist by trade and assuming everyone is a rational consumer, if I had to buy my own license or I had something readily available to me that’s going to be paid for, maintained, updated constantly, I think the rational decision is the latter rather than the former.  I think that’s where the VA’s going.

Moderator:  Thank you both for those responses.  We do have a few more questions that have come in.  The first is regarding, what is the URL to the VINCI site with information about how to request?  I sent that person the instructions at the bottom of the main VINCI page that says, “To get started, please visit the intranet site.”  Is that the correct information to be passing along?

Mark Ezzo:  That would be correct.  If anyone has any problems, please feel free—this is all about batch jobs.  You can submit batch jobs; you have a checkpoint restart, Grid Manager centralized control.  This also will be out there on the Web site showing you how that works.  There is our Linux grid, our 9.3 grid.  Essentially these are the cores: how it works, the cluster sharing system, my SAN storage, shared SAN.  If you have any questions whatsoever, contact myself, or you can also contact Kevin Martin, whose name is in Outlook.

Moderator:  The next question, can/how will full screen PROCs like FSVIEW be supported?

Mark Ezzo:  FSVIEW, I think I need to know more about that.  There was an old—it’s become part of SAS anytime you click on anything, even in things like AF that brings up FSVIEW or FSEDIT.  There was an old PROC that people really don’t buy too much anymore, because of what we just talked about, called FSEDIT.  And if you still have that—I don’t believe we have it explicitly on the grid.  Every time you click on a SAS table you’re going to call it FSEDIT.  Full screen is supported, to make a short answer, but it’s not supported if they are assuming is there PROC FSEDIT out there.

Kevin Martin:  There’s not under our current license.  Of course, if you’re in things such as Enterprise Guide using one of the other applications, you kind of get a similar ability inside of that.  I heard with the advent of SAS 10 that the AF module is going to go away.  A lot of those older tools such as full screen view, full screen browse, full screen edit, are going to be deprecated.  Whether or not that actually comes to pass I don’t know, but I had heard that on one of the early presentations at a previous SAS global forum that the AF module, which essentially contains all of those full screen components, is going by the wayside in a future version.

Mark Ezzo:  If we click on—this is FSEDIT.  Right now it’s FSVIEW; you can [inaudible] FSEDIT.  But Kevin’s right; we do not have FSEDIT license.

Moderator:  We do still have six minutes until the top of the hour, so anyone that would like to submit a question, I invite you to open up your Q&A portion of your dashboard and type in now while we have these experts on the line.  Also, of course, I encourage you to visit the VINCI Web page where you can find out more information, and also there are links to the previous VINCI sessions and other tool sessions, which will provide you more information.

Mark Ezzo:  What we can also do, and we do this all the time—if you have any questions, again email me; give me a call.  If you want to pass some code by us, we’re glad to review it.  We’re glad to help you get started, to send you examples, whatever needs to be done.  As time progresses with the certain groups, what we’re going to do is enable some power users out in the metadata, train them how to do some of the simpler tasks, though not all of the tasks, of course.  We are here at your behest to try and enhance your experience as much as possible, and that includes advice, helping with code, examples of code, whatever needs to be done within reason.

Moderator:  My shop uses huge Austin DX and PBM Rx data regularly.  Are these data on the grid?  If not, would we put on grid in order to use them?

Kevin Martin:  I don’t know that we have copies of those.  It’s not that we couldn’t get them; Austin has been sending us copies of the MedSAS files for a long time, which are the outpatient workload tables.  So we have all of that; that’s been the most common one.  If these are related to finance, I believe those copies are in the works.  It shouldn’t be that hard to get Austin to send those over because they do send copies to the VSSC SAS servers, which are not directly part of the grid.  But the fact that the data’s being streamed, we know that we can do it.  We just have to add the request into—send it to another location essentially.  Yes, I think that we can get our hands on pretty much any data file, especially if it’s a SAS file on the mainframe.  We will just need the appropriate contact so that we could get it added to one of the SAN servers where we could store it.

Mark Ezzo:  You have to go through the usual data procedures for authorization too.

Kevin Martin:  Yeah, it’s not a free-for-all.  Mark showed the point where we can define all your libraries in the metadata.  That doesn’t preclude the security on any of those devices.  We can create the tunnel, but your account in the background—it has to go through a challenge step to see that you actually have clearance to that data.  Whether it be a SQL Server database such as CEW or one of the Austin files where you have at least PHI clearance, we have PHI security groups on those folders housing that data.  So it’s very easy to tell whether or not you have the approved clearance to see the data.  We don’t try to implement any security; we just create the tunnel.

Mark Ezzo:  Right.  In fact, if you try to get to data, even if we erroneously attach that data to your workspace server, if your log-in did not have authorization to it, you couldn’t get to the data.  Kevin said it precisely.

Kevin Martin:  You might see a reference to the [lib_rif], but you wouldn’t be able to actually open up and see any internal contents.  For the most part we apply those settings at a group policy, where an individual group of users would be given access to a particular library of data.  Say ninety percent of those members already have the approved clearance, but there may be the occasional member where their account doesn’t have that clearance, that individual person is going to lose the security challenge where the rest of them can go through.  That’s all part of the single sign-on [DSSIS] feature.

Moderator:  Thank you both for those responses.  I am not seeing any further questions at this time, and we are at the top of the hour, so at this point I’d like to turn it over to both of you for any concluding comments you’d like to make.

Mark Ezzo:  Again, I want to thank everybody for attending, taking the time to listen.  What we have here is really a fine, state-of-the-art assembly of software and a venue for it, and we welcome you to use it as you’re authorized to use it.  Kevin and I, of course, are here to assist you in any way, shape, or form.  It’s growing rapidly, so I would say the sooner to get in the better.

Moderator:  Kevin, would you like to make any concluding comments?

Kevin Martin:  No, I concur with everything that Mark said.

Moderator:  I too would like to thank our audience for joining us.  Again, you will receive a follow-up email to today’s session with a direct link to the archive.  With that, this does conclude today’s HSR&D cyber seminar.  Thank you for joining us.

**End of recording**

Cambridge Transcriptionswww.ctran.com

Cambridge Transcriptionswww.ctran.com