Let's get started

Basic back and forth.

Initial Steps

If you need help installing the software, check out the instructions here. From here on out we assume you have followed all installation instructions, including the last detail where Excel is linked to the .xll file.

Bring up the engine simply by clicking the Windows start button, typing the name "parietal" and clicking on the application icon.

You should now see a black box with some information on it. Things like version information, license status and machine id. You can minimize (but not close) this window. It is important to remember that this is the engine that does the number crunching. This needs to be running for the Excel add-in to work.

Now bring up Excel. You should see a tab towards the right on the ribbon named Parietal. If you don't see it there, then likely one of two things has happened. You either did not link Excel to the parietal.xll file or installed the wrong bit version. If this is the case and you don't see the Parietal tab, we recommend you follow the installation instructions here.

Clicking the Parietal tab you should see something like this.

So, you initialized the engine, opened up Excel and verified that the Parietal tab was present. Now lets run some numbers.

Making Requests

It is important to understand the role of the Excel add-in. Its job is simply is to take your requests, communicate them to the engine, get the response and display it on the worksheet. In other words, the core calculations happen in the engine, not in Excel itself.

  • Make sure your engine is up.
  • Now in Excel, highlight your dataset.
  • In the LM dropdown, click on the OLS and populate the form.
  • Hit 'Commit'

The operations we performed above were synchronous. We created a request and fired it off for completion. Then we waited a tiny amount of time for the results to come back and which were written to the sheet.

But how about something like a simulation which would take a while to run? Would it be reasonable to freeze Excel for long period of time while the calculations are being performed? Obviously not. What we need for long running tasks is a workflow that is asynchronous. You'll be surprised at how easy and seamless we have made this for you.

Making Asynchronous Requests

Let's go with a task that will take a non-trivial amount of time to run e.g. something like an MCMC simulation.

  • Make sure your engine is up.
  • Now in Excel, highlight your dataset.
  • In the VOL dropdown, click on the MCMC and populate the form.
  • Select SV 1
  • Hit 'Queue'

Notice that the submission button is labelled 'Queue' instead of 'Commit'.

  • Any form with a Commit button is a blocking (synchronous) call.
  • Any form with a Queue button is a non-blocking (async) call.

When you ask for an asynchronous request, the engine enters it into a pipeline.

Check on the status of work being performed. The engine will then see which processors are available and assign the work to them. Once the work is done, it will cache the results. But how do you know when your request has been completed?

Easy. Hit the Manage Jobs button in the Manager group and click Update. You will now see the status of the async job that you sent the request for. A job can have one of four states:{ waiting, working, completed, cancelled }

To pull in a completed task, simply click anywhere on that row and hit Fetch. That's it.

To cancel a job that is still in progress, click anywhere on that row and hit Try Kill. The engine will try and kill the task.

A sense of the workflow

Multitasking is possible even if you have requested multiple long running tasks. And it couldn't be any easier. If it wasn't clear from the section above, you can keep working and request additional sync and async jobs even while the engine is already working.

The engine will try and use all cores on your machine. Jobs enter a queue and are popped off for completion as cpu resources become available.

Things to keep in mind

After requesting enough async tasks, you might notice parietal.exe is taking up more and more memory. You can observe this in the Windows Task Manager. The reason this is happening is that parietal.exe is caching results of async tasks that it has completed. If you decide you no longer need these cached results, you can click Free Mem. The engine will clear the cache and you will notice the size of the parietal.exe process shrink.

The extent of parallelism is limited to the number of logical cores in your machine.

If you try to kill a very large async task, you might face blocking behavior if you request any other async operations while the engine is trying to complete the cancellation request.