New Upload weather data from web services into TM1/Planning Analytics — Read the post →

Run processes in parallel using only one TM1 connection

Being able to run processes in parallel is one of the most powerful features of IBM TM1 and Planning Analytics. Instead of loading one year of data with one process, you could run in parallel one process per month which will significantly speed up your loading time!

Run processes in parallel with TM1RunTI

Running processes in parallel is quite common now in IBM TM1 and Planning Analytics applications. The most common way to do it is to use TM1RunTI. TM1RunTI is an exe file located in the TM1 bin installation folder. With a simple command line you can run multiple processes in parallel:

Manage running processes with Hustle

Hustle was created to manage the threads and ensure you do not exceed the number of available threads on the server. Hustle uses TM1RunTI, therefore it has the same limitation — for each thread, it needs to connect to TM1 first. In certain applications, TM1 developers had to set up one different user per thread to avoid locking.

Run processes in parallel with only one connection

To avoid this situation, RushTI was created. RushTI does the same as Hustle except that it connects to TM1 only once at the beginning and then reuses the same connection to run all threads.

Prerequisites

  • TM1 10.2 FP5 as minimum

  • TM1py v1.0.3 as minimum

1. Install Python

RushTI is a Python script. Steps to install Python can be found in the TM1py getting started guide.

2. Install TM1py

Open a command prompt and type: pip install TM1py

3. Download RushTI folder

RushTI is open-source and can be downloaded from its GitHub page.

4. Update config file

In the config file, add your TM1 instance information:

WARNING: The password needs to be encoded in Base 64.

5. Update tasks.txt

The file tasks.txt contains the list of all processes to execute:

You can run processes from different TM1 instances by changing the instance parameter.

6. Run RushTI from command line

The last parameter (4) is the number of threads RushTI will run simultaneously.

Run RushTI from a TM1 process

Use the ExecuteCommand function in the Prolog or Epilog tab:

The second parameter is 1 to wait for the command to finish, or 0 to terminate immediately.

Troubleshoot RushTI

Check the RushTI.log file in the same folder as RushTI.py. The most common errors are: connectivity issues with the TM1 instance (check config.ini), TM1py version should be v1.0.3 minimum, or incorrect TM1 process parameters.