July 23, 2013

Simio offers new teaching material on simulation and risk-based planning and scheduling (RPS) with Simio

Announced in the LinkedIn Simio Academic Interest group today, check out the link and the videos:


Thanks Dave for sharing.

July 22, 2013

5 benefits from simulation in the cloud

Being a Simio Insider is a great privilege (which by the way anyone can enjoy)! You get the latest information about the Simio software, and what is especially interesting are the discussions about what the software does not offer right now, but should in the future.

We have already heard that Simio has plans to move to the cloud a while ago and with the Replication Runner, Simio has already taken the first step in this direction, as with it you can allocate resources beyond your own machine to run experiments. That's basically the same concept as the cloud. Hopefully, we will see the next step soon, which is a full migration to the cloud.

What exactly are the benefits of simulation in the cloud? Here are five thoughts:
  1. Scale-up your experiment runs and replicate the runs across any number of nodes in the cloud -> massive performance gain
  2. No hardware investment required to run resource-intensive simulations. Anyone can quickly run very complex models and run more combinations. This would also benefit optimization add-ins, as they often rely on running different parameter constellations
  3. Aside from performance, a cloud-based development of simulation models makes it easier to collaborate and share models.
  4. Licensing could become more flexible. Think of pay-per-use. No permanent licenses are required anymore, no yearly maintenance plans. If I don't want to simulate, no need to pay. Also many users could work at the same time, while with old licensing models often only one workstation is equipped and licensed. 
  5. Always up-to-date software. No more downloading of new sprints or releases. The Simio software would opened in a web-browser and the latest version would always be available to all users immediately.
What other benefits do you see? What tools are there that run in the cloud?

February 1, 2012

Replication Runner in Simio

Today it's just a quick announcement from the Simio Insider forum that with the new sprint, there will be a new feature called Replication Runner. It comes with the Enterprise- and Team-Edition of Simio, and it sounds really cool! What does it do? Suppose you have multiple machines running Simio in one of the editions mentioned, and you are creating experiments with multiple replications. Now the Replication Runner, if running on all computers, and if the computers are connected via network, uses the computing capacity of all machines it can reach to execute the experiment.

In my opinion, this is a great feature, and it offers a great way to improve simulation execution. This feature is especially noteworthy, as the speed of complex simulations is a critical factor.

I have not yet tried this feature myself, but I will soon and afterwards report about it here.

August 1, 2011

Accessing SQL Server from Simio

Getting information from an external data source is a common requirement for a simulation tool. This can be either for dynamically building the simulation model or for reading values, e.g. arrival times, during the simulation run. Simio supports the ladder out of the box mainly with the following two features:
  • Tables can be filled from and bound to Excel or CSV files
  • The Read and Write steps allow access to text files during the simulation run

Import or bind tables to Excel or CSV files in Simio.

The ambitious modeler can enable Simio to access any other data source by writing custom steps and elements against the Simio API in C#. Not everyone is keen to programming, though, and to make life a little easier for those who want to read from a SQL Server database, we have started to implement a set of elements and steps to do exactly this.

The new element appears in the user defined step menu.

To begin with, we have written an element that represents a connection to a SQL Server database. The first step to use this connection is the "SQLReadSingleValue" step, which expects  a SQL statement that returns a single column and row i.e. exactly one value. The return type can either be numeric (double) or string at this point. The SELECT-statement can contain parameters  in the form of placeholder questionmarks. The user specifies the parameter values in a list of expressions in a repeated property group in the order as they appear in the SELECT-statement.

As mentioned, this element and step is only the start. There is already a plan for a step to insert rows into a SQL Server table. There are many other things we think about. Here are some thoughts of what could be done with the API in combination with SQL Server connectivity:
  • A way to fill Simio tables from SQL Server, which is now possible from Excel or CSV only.
  • Read multiple values at once and assign them to multiple state variables; this would probably be implemented within the same step as the single value select.
  • Generate models or parts of it from information in a SQL Server database. This would be implemented in a Simio Design Add-In.
  • Generate experiments from information in a SQL Server database. This would result in a Simio Experiment Add-In.
  • Write statistics to SQL Server during the simulation run; this could offer better analysis of results compared to what is possible now. Once the data is in a relational database it could easily be transformed into a dimensional model. Think Cubes, OLAP etc.
Furthermore, all of the extensions currently written for SQL Server could quite easily be applied to other data sources. The ADO.NET library for contains classes for connecting to Oracle or any OLE DB or ODBC compliant data source. Right now, only the SQL Server classes are used, but could easily be substituted.

If anyone is interested in what we do here, please leave a comment or contact us via our website. Very soon we are going to offer the first elements and steps for download here for you to test. Also, we are open for any kind of cooperation with anyone who wants to develop extensions for Simio, or who requires help implementing custom logic for Simio.

We are anxious to hear your feedback!

July 21, 2011

Simio Development: Using DebugView and Traces for easier debugging

Simio allows to extend their software through their .NET-API.  One important issue is to debug the custom code, whether it's a step, element or add-in. The easiest way is to download the Visual Studio 2010 Express (C#-Version) and use the built-in debugger. All you need to do is attach to the running Simio process (Simio.exe) and set a breakpoint in your code. Works really well.

There is another - maybe easier - way to debug your code, without breakpoints or attaching to the running Simio process. This solution involves DebugView, a tool from the Microsoft Sysinternals-Suite, and the System.Diagnostics.Trace class. DebugView allows to monitor any trace or debug events from running processes. It's a very small application, which needs no installation at all, simply unzip it and start it. Now if you use the TraceWarning(), TraceInformation(), or TraceError() methods from the Trace class to output information from any point in your code you will see this information in DebugView when Simio executes your code. Cool huh?

Show your Simio traces in DebugView

Make sure that you build your assembly in debug-mode to acitivate the traces. If you build in release-mode the traces will be deactivated.

Using DebugView to debug custom Simio code saves you some clicks if you only want to follow what your code is doing. It does not, however, replace a real debug if you have a real bug that you cannot find this way. Then you should attach Visual Studio to the Simio process and use the breakpoints to step into the code.

Although this makes development for Simio easier, the most annoying problem is still there: Everytime you make changes to your code you have to restart Simio in order for your changes to take affect. This slows down the development cycle a great bit, as this happens quite often. At this point I would like to add to the Simio feature wishlist to offer a way to dynamically refresh DLLs in the UserExtensions folder. Please. 

July 11, 2011

Nice export plot function in Simio

In Simio you can easily export the results of your simulation to a .csv file to open it in Excel, for example. Another way to export your results graphically is Simio's built-in image export function. Why am I mentioning this here? Because it can't be taken for granted these days, many tools that create plots do not offer such a function, and the only way to get the information out is by making a screenshot :-(

Now I can insert this cool plot into this blog post! It's that simple :-)

July 7, 2011

Great article on risk analysis using simulation

Unfortunately only in German, for all of the non-german readers of this blog, on risknet.de appeared a great article explaining how industrial companies can benefit from simulation in managing their risks. Read this article to learn more! All of this can be done with Simio!

>> Marktsimulation und Stresstest in der Industrie