Page 1 of 1
maximum number of threads
Posted: Wed Jan 15, 2014 7:53 pm
by ardi
Hi,
We have developed some processes to load and calculate data, and in order to improve the execution time, we have designed the processes that they can be executed multiple times in parallel by providing different parameters so there is no data write overlapping. We are executing them using TM1RunTI utility and they work fine until the number of parallel executions of the batch TI exceeds some limit. When the windows batch file containing the TM1RunTI gets executed, in TM1top we see multiple threads running, and some of them are waiting to login. This happens only if the batch calls more than a certain number of times the batch TI
Re: maximum number of threads
Posted: Wed Jan 15, 2014 7:55 pm
by ardi
Sorry i hit submit accidentally. So my question is, how many threads per user can TM1 handle. We are using a server with 4 cores.
Thanks
Re: maximum number of threads
Posted: Thu Jan 16, 2014 1:28 pm
by qml
IBM® Cognos® TM1 Operations Guide wrote:A MaximumPorts value of 0 for a client in the }ClientProperties cube indicates that a maximum port limit is not defined for the client. When a maximum port limit is not defined, TM1 uses a default value equivalent to the number of users for which your TM1 server is licensed. For example, if your TM1 server is licensed for 50 users, the default maximum port limit for a client is 50.
You can enter or edit values for MaximumPorts and PasswordExpirationDays directly in the }ClientProperties cube.
Re: maximum number of threads
Posted: Thu Jan 16, 2014 2:04 pm
by lotsaram
ardi wrote:So my question is, how many threads per user can TM1 handle. We are using a server with 4 cores.
You pretty much answered your own question, it becomes a hardware limitation. You can have as many threads as you like, but the number of threads that can run concurrently is limited by the number of available cores as a TM1 calculation thread while running will take up 100% of an available CPU core.
In this case you are pretty limited in how much you can optimize the load time due to the small number of cores. Always best to leave at least 1 available core for other applications and/or other threads so in your case you can only split out to 2 or maximum 3 TM1RunTI batches.
Note: strictly speaking that isn't answering the question you asked, but I think it is answering what you wanted to know.
Re: maximum number of threads
Posted: Fri Jan 17, 2014 9:35 pm
by ardi
I can definitely run the same Batch_TI at least 10 times in parallel, from TM1RunTI utility. So TM1 can run more than one thread per core.
We have developed a Windows Batch that loops through a List of Fiscal Periods and Region Combinations ( our Batch TI accepts 2 Parameters: Fiscal Period and Region ) and Executes the TM1 Batch TI by providing Period and Region as parameters.
Because we have too many combinations, then we have the locking issue. So for example if the Windows Batch calls TM1 Batch_TI 30 times, then 10 or 12 of them start running (each of them on its own session ), and the rest wait, they actually cannot login at all.
I want to figure out how many can we lauch depending on server resources. I could not find any decent document regarding this. In production we will have more hardware resources.
Thank you
Re: maximum number of threads
Posted: Fri Jan 17, 2014 10:33 pm
by tomok
ardi wrote:I can definitely run the same Batch_TI at least 10 times in parallel, from TM1RunTI utility. So TM1 can run more than one thread per core.
You can run as many versions of this batch as you want but you are never going to have more than one thread going per core
at a single point in time. That's a fact. The fact that you have been able to kick it off 10 times does not change that. Earlier threads are simply finishing so that requests from other batches can be processed. Your batch running version of TM1RunTI does not own a core such that other batches cannot use it when it is idle and the definition of idle does not necessarily mean the entire TI process is finished. It simply means a pending request has been completed.
So, the answer is you can run multiple batches at once to take greater advantage of the cores so there is very little idle time. How many? No one is going to be able to tell you that because only you now how complex the TI process in the batch is. If it were me I would just back it down one batch at a time until the locking goes away. I would do that test maybe 20 to 30 times and then find out the average and use that. Using TM1 to it's fullest is often times an art, not a science.