Best way to do parallel activities

Are there any comments on the best way to do parallel activities in LabVIEW. An example is a program doing data acquisition or video capture and reading several com ports - all asynchronously. One way is to use parallel while loops and use occurrences or notifications to start each loop. I saw a posting where Sergey Krasnishov suggested vi server. Then I guess you run different instances of LabVIEW programs and use datasocket rather than local variables to exchange data between the programs. It seems to be decision as to whether you let LabVIEW determine the threading between activities (making sure not to tie up the processor in any of the parallel loops) or in the vi server case letting Windows determine which application runs wh
en.

> However its not clear to me if this makes better use of the processors
> time in terms of switching between the loops than if the 2 while loops
> are on the same diagram.
>
For deeper details on how a VI is executed, you might want to look at
Steve Roger's slides from his NIWeek presentation.
A quick summary is that LV schedules execution based upon dataflow and
the nodes that are ready to execute do so in what we call an execution
system. Today's LV has five execution systems and each supports five
priorities. In single threaded LV, there is one thread servicing the
various execution systems. In multithreaded LV there can be many OS
threads, each assigned to one execution system at a particular priority.
Each VI has a setting/property stating where its execution is to
occur, though there is some inheritance of priority to prevent inversion.
If you do not change the way LV allocates threads for the various
execution systems, the default is to have one per cell, or one per
execution system per priority. This means that a single VI, which runs
in one execution system at one priority will use cooperative
multitasking to carry out the execution of the loops.
It isn't clear to me exactly what your goal is with parallel processing,
but without a second CPU, you will only have the CPU doing one thing at
a time and it is a matter of how often it switches between the tasks and
what precedence they tasks get. If you wish to have finer grained
parallel execution, there are several techniques.
One simple one is to place a wait of zero milliseconds in each parallel
operation. Each of these will cause the code to reschedule itself and
if there are other operations available, they will get a turn. If not,
the node will continue executing. This technique typically works very
well and your diagram is in control of where the task switching occurs.
Another technique is to leave the loops in the same VI, but change the
LV configuration to have multiple threads for the standard execution
system. There will then be more than one OS thread that executes LV
code as it becomes available. It will be up to the OS to decide
everything about how the threads execute on the processor(s) available.
Another technique is to move the loops within separate VIs. Simply
placing one of them in a subVI is sufficient. Then set the VI Property
to have the execution take place in different execution systems. Again,
more than one OS thread will be used, and ideally the behavior is
indistinguishable from the first. Occasionally, two loops in the same
VI will execute slower than this approach on multhprocessor computers
due to cache lines on the processors and how often a write from one
processor invalidates memory cached by the other processor. This
difference typically goes away when debugging is turned off on the VI.
Greg McKaskle

Similar Messages

  • What is the best way to stop parallel loops at the same time, from any loop?

    If there is a vi with two or more parallel while loops, what would be a good method to simultaneously stop parallel loop execution, from any of the parallel loops? My intent was to try and do this without local variables, so I used notifiers. This seems like an ok method for two loops, but how about for n loops?
    In addition, my code has a flaw. I use an OR block to compare the stop status of each of the loops. This works fine most of the time, but if both loops are triggered to stop at the same time,the boolean result will be false, causing the loops to never stop. How can this be avoided?
    Thanks,
    Curt
    Attachments:
    parallel_loop_w-stop.vi ‏54 KB

    I think you have the right idea, notifiers are one of the better ways to stop parallel loops. You can simplify things by using 1 notifier for everything. I modified your VI to use 1 notifier, it will set the notifier to True ONLY if the loop is stopping, then it stops. The other loop will read the notifier status, and stop based on it the next time it executes.
    I also changed the second loop to stop and notify if it has an error (that is usually a good idea, especally if you have I/O or other things that can cause problems)
    I also changed the switch mechanical action, that will eliminate the problems for your second question.
    The VI's attached are written in Labview 7.0
    P.S. If you have 7.1, the Queues are polymorphic, meaning that the typecast operat
    ions are NOT needed!
    Attachments:
    parallel_loop_w-stop7_0.vi ‏45 KB

  • What is the best way to for a plugin to wrap a video element in a parallel composition with a reference plugin that points to that Video Element?

    I have a basic reference element loaded as a plugin, which is able to retrieve information about, pause and play video elements while displaying its own overlay content as well.  What it's not currently doing, is automatically positioning itself to the same location and dimensions of the video element that it references.  For some reason, when I try using the layout API to set position and size in the video element metadata, this is not retrieved by the reference element (it returns a null value for the target video element's metadata).
    I wanted to try a different approach, specifically, creating a parallel composition that works as follows:
    1) When a video element is created in the factory, it is automatically wrapped in a parallel composition element along with a reference element, which is passed the video element as a target.
    2) The reference element sets its width and height with the width and height properties of the video element spatial trait and will listen for any changes to that width and height to adjust accordingly.
    3) Now that I think about it, the parallel composition should itself be a proxy for the video element, so other code in the player that moves, resizes, or otherwise alters the dispay of the video element, will if fact be adjusting the whole video element + reference element parallel composition.
    In other words, I want the reference element to be an overlay that is "locked" to the surface of any video element and follows it in size, position, display and even audio traits.
    Suggestions for the best way to approach this within the framework?

    Thanks Wei,
    With some more tweaking, I am able to get and use the layout metadata as you said!  Here is where my issue stands now:
    * My IMediaReferrer element can now look at the layout metadata of the target media element and copy those values, so it has the same width, height, x, and y  properties.  This is great!
    * However, particularly for RelativeLayoutFacet metadata, this is only fully useful if both the target media element and my IMediaReferrer element are in the same composition.  If they are in different compositions which are themselves placed differently, then even identical x and y values don't add up to the same position on the screen.
    So, my challenge is to figure out how to ensure that my IMediaReferrer element is placed in the same composition as the target media element.
    Again, the goal is to write a plugin that will have a reference to an underlying video, and will always have the same width, height, x, and y of the video it is overlaying.  This plugin should not require any additional coding in the player, but should take care of setting itself up as above automatically when loaded.
    There isn't any property on a media element which exposes the "parent" composition element that it is a part of, so I don't know how to get my IMediaReferrer to add itself to the same composition as the reference target automatically.  I'm not sure if it's possible to make my IMediaReferrer element extend ParallelElement and still load in a SWF Element as an overlay, and add that SWF Element and the target Media Element as children with identical layout metadata.
    Do you have any suggestions on how I should proceed?
    Thanks again!

  • I want to transmit a square pulse through USB port, is it possible?? if not then what is the best way to do that, preferable is with serial then parallel, and its compatibility with vista,XP,and @))7 windows

    hi froends
    i want to transmit a square pulse using lab-view, please help how to do that, the preference  will be USB,SERIAL, Parallel ports, it it must be compatible with all the os versions, like 2007 windows, vista,XP and other.
    please help..................

    sanghi wrote:
    OK I WANT TO DRIVE A RELAY.
    SUGGEST SOMETHING 
    Calm down!
    People can't read your mind.  If you want help, repsect those who contribute their time for free to try to help you.
    Put yourself in our shoes.  If I tell you I want to build a rocket, what information would you give me?  You would need to know if it's for a hobby, something bigger, carries a payload, carries living organism, how far does it go, where does it land (if at all), etc...  
    First of all, we still don't know what you want to do with this relay.  Using a computer to generate is series of pulses is not usually the best way.  What is the frequency of the pulses that you want to transmit?  And why do you want to use a relay?  What are you driving?  Can the relay that you are using fast enough to follow the pulse train that you'll be sending?
    Provide information, ask questions politely and people will help you.

  • Best way to read data sources in parallel

    Hi,
    I'm looking for conceptual help as I start a project. I am trying to figure out the best way to get data from several sources at different timings and deliver them to a main vi.
    I have 4 systems, which each work well on their own (OK, one doesn't work yet, but let's assume that can be fixed
    One system reads from 2 pH meters on serial ports. The meters are slow to respond, so it takes about 2 minutes to read 4 channels of data. I save these data to a file every 10 minutes
    One system reads from a CO2 meter on the USB port. It reads the data every second, and does some averaging. Every 2-10 minutes, it saves the average to a file and then sends a command to the parallel port to switch the input to the meter.
    The third system reads from 6 valves, each on a serial port. These also take time, probably several minutes to poll all 6. These data will also be saved to a file.
    The 4th system reads a bank of temperature probes on the USB port. These get polled every few seconds and saved to a file every few minutes.
    Now that these individual routines are working, I am trying to create a front end that will display all the data in one place and allow me to set all the parameters from a single place. I would also like the possibility of using the data from one source at another place (for instance, having the output of the temperature probes sent to the pH meters to adjust their calibration). At this point, I get confused as to the best way to proceed.
    It seems like if I just want to read the data from each source, I could simply put all 4 routines together in a single vi (oh, what a mess that would be to read). Maybe I should start this way?
    However, if I want to have any communication between the different data sources, it seems like I will either need to use queues or VI server. I sort of envision a vi that lets me configure the various ports and the file operations and then can turn on monitoring of any or all of the various inputs. Each of them will do their thing at their own time and the main routine will simply display whatever data they deliver whenever they have new data. Fortunately, nothing is particularly time-critical, nor does it need to run fast.
    My questions: Am I correct in how I'm thinking about getting this to work?   Is there a clear choice between queues or vi server? I've looked at several examples of each, but without having done something like this before, it is hard for me to tell which is better.
    Thanks for any suggestions.
    mike

    Hi Mike,
    I think that you are on the right track with your thinking process. You might be able to implement this using queues. I'm not exactly sure how you would do it with VI server since it is just a set of functions that allows you to dynamically control front panel objects, VIs, and the LabVIEW environment. However, there are some great resources available with using queues for this type of application. I'm including the link to another discussion forum that had a very similar question to yours. There is a good example of using queues within this forum post. Also, there is a great example in NI Developer Zone about using queues and some other good ones in the NI Example Finder (just search 'queues' and you should get a few results). I hope this helps!
    Carla
    National Instruments
    Applications Engineer

  • I just switched from pc to mac.  what is the best way to keep Windows?  Parallel or Boot camp?

    I have just switched from pc to mac.  What is the best way to keep Windows, Parallel of Boot camp?

    Parallels should be able to handle that without any problems.
    There is a version of both of those that will run on the Mac. So you might consider upgrading to that version instead of going with Windows on your Mac.
    Allan

  • What is the best way to write 10 channels of data each sampled at 4kHz to file?

    Hi everyone,
    I have developed a vi with about 8 AI channels and 2 AO channels... The vi uses a number of parallel while loops to acquire, process, and display continous data.. All data are read at 400 points per loop interation and all synchronously sampled at 4kHz...
    My questions is: Which is the best way of writing the data to file? The "Write Measurement To File.vi" or low-level "open/create file" and "close file" functions? From my understanding there are limitations with both approaches, which I have outlines below..
    The "Write Measurement To File.vi" is simple to use and closes the file after each interation so if the program crashes not all data would necessary be lost; however, the fact it closes and opens the file after each iteration consumes the processor and takes time... This may cause lags or data to be lost, which I absolutely do not want..
    The low-level "open/create file" and "close file" functions involves a bit more coding, but does not require the file to be closed/opened after each iteration; so processor consumption is reduced and associated lag due to continuous open/close operations will not occur.. However, if the program crashes while data is being acquired ALL data in the buffer yet to be written will be lost... This is risky to me...
    Does anyone have any comments or suggestions about which way I should go?... At the end of the day, I want to be able to start/stop the write to file process within a running while loop... To do this can the opn/create file and close file functions even be used (as they will need to be inside a while loop)?
    I think I am ok with the coding... Just the some help to clarify which direction I should go and the pros and cons for each...
    Regards,
    Jack
    Attachments:
    TMS [PXI] FINAL DONE.vi ‏338 KB

    One thing you have not mentioned is how you are consuming the data after you save it.  Your solution should be compatible with whatever software you are using at both ends.
    Your data rate (40kS/s) is relatively slow.  You can achieve it using just about any format from ASCII, to raw binary and TDMS, provided you keep your file open and close operations out of the write loop.  I would recommend a producer/consumer architecture to decouple the data collection from the data writing.  This may not be necessary at the low rates you are using, but it is good practice and would enable you to scale to hardware limited speeds.
    TDMS was designed for logging and is a safe format (<fullDisclosure> I am a National Instruments employee </fullDisclosure> ).  If you are worried about power failures, you should flush it after every write operation, since TDMS can buffer data and write it in larger chunks to give better performance and smaller file sizes.  This will make it slower, but should not be an issue at your write speeds.  Make sure you read up on the use of TDMS and how and when it buffers data so you can make sure your implementation does what you would like it to do.
    If you have further questions, let us know.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • What's the best way to set up my TC?

    Hey guys... I'm pretty new to Mac/Bootcamp/TimeCapsule and all these great stuffs... I've bought a macbook pro, a 3TB time capsule, apple tv and a WD 3TB Storage External Hard Drive.
    I also bought Parallels... Now let me explain you what I'm looking for and what I've done until now (sorry about my English):
    I installed Windows 7 via Bootcamp... It's working great... Now I'm studying all the ways I can set up my timecapsule, I first need to think about it for doing things on the right way and don't need to go back and set up everything again. That's why I need some help from experts.
    I NEED to run windows on my mac because I'm architect and I use all Autodesk programs, specially Revit Architecture, and it works only on Windows.
    All my stuff is on my 3TB WD External Hard Drive (including personal photos, videos, music and work files).
    I partitioned my HD (my macbook has 1 TB) this way: 600 GB for Macintosh and about 300 GB for Windows. I intended to do this: All my files related to my work (architectural work, Autodesk files, libraries etc), I would copy to my Windows partition, and I would install all Autodesk programs, including other programs like CorelDraw and Photoshop, there...
    All my other files (personal videos, music, photos) I would copy to Macintosh HD Partition... That would be a good way to work.
    BUT I know is possible to set up TimeCapsule as a file server.... So, it would be a good idea to save my "autodesk"/work files in TimeCapsule and working directly from there? Or it would slow down my workflow? It would depend of my Internet connection or it would read my files using an internal connecting? (without affecting speed when reading files).
    It would be nice to storage my work files in TimeCapsule because I would not fill space from my Macbook HD... But it would be a problem when I eventually need to make a trip or visit a client and take my macbook to access files from there, right? It would not be easy simply "copy one or two files" to my macbook because there's libraries, file links, references from libraries storaged on "windows program files" etc...
    As you can see I'm very worried and lost about the best way to proceed.... I also wrote a lot, sorry. Let me simplify things again:
    1) I have my files from work in Windows Partition, and my personal files in Macintosh partition
    2) I need to access my work files (Windows) eventually when I take my macbook in a trip, but I can't copy those files to it, they need to stay in a static path (they depend of other files, references, settings, external libraries etc)
    3) I want to setup my TimeCapsule to do automatic backups of all my files (both stored on Windows and Mac partitions. Is it possible in windows? Or TC just do that in files in iOS X?)
    4) I also have the option to install Parallels, but I don't know if it would be a nice choice (I'm worried to lose speed when I work in large projects on 3D programs).
    Please, can someone help me out?

    BUT I know is possible to set up TimeCapsule as a file server...
    What is possible is not necessarily easy or best.
    In fact the TC is not a file server.. and was never designed for that. It is primarily a backup for Time Machine.
    So, it would be a good idea to save my "autodesk"/work files in TimeCapsule and working directly from there?
    No, that would be a very poor way to work. Keeping and using live files on the TC.. especially if you use wireless to access them would be very bad. Less bad but still slow over ethernet.
    You can backup completed projects to the TC but certainly don't use it for live work files.. they should always be on the local hard disk.
    It would be nice to storage my work files in TimeCapsule because I would not fill space from my Macbook HD... But it would be a problem when I eventually need to make a trip or visit a client and take my macbook to access files from there, right?
    You might be better to redo the setup of the computer..
    Partition the space with much more available for windows.. put more of your personal files, onto a USB drive you plug into the computer.
    All my other files (personal videos, music, photos) I would copy to Macintosh HD Partition... That would be a good way to work.
    You seem to have a conflict between using it for work purposes and personal use.. In fact almost I would say you need two laptops.. but perhaps that is not acceptable.
    You cannot build a computer to be everything to everyone. If you have competition for use.. IMHO the part that makes you money is more important than the personal interest. And info like videos and music can live happily on a 2.5" 1TB USB3 drive you use for that.
    The TC cannot backup windows.. The Mac OS cannot really backup windows.. in fact you should exclude windows file from the backup for a number of reasons.. mostly it is too big and is pretty much useless when you rebuild a machine. You need to backup windows from within windows.. use a suitable Windows backup software.. Genie TIme Line pro is popular here because it is vaguely like Time Machine.
    Time Machine of course backs up your Mac partition and you can include the external USB drive in the backup as long as it is correctly formatted HFS+.
    You have lots to learn.. feel free to ask questions.. but take it a bit at a time. Hard to read slabs of text.

  • My wife and I share an Ipad.   We each have our own email address and calendar.   What is the best way for us to backup both accounts (we currently only have 1 ICloud account)?   Thanks for any help!    Alan

    My wife and I each have our own email address and calendar.  These are on one IPad.   The Ipad has a single ICloud account.
    What's the best way to backup both Calendars, etc?   Does ICloud automatically back up every account on the same IPad?  (I checked ICloud, but I could only find my stuff.)
    Thanks for any help!
    Alan

    First, you need to understand that there's a difference between "syncing" and "backup".  Backup is the saving of content and settings, where syncing is the bidirectional transfer of content for an account to a web-based server (like iCloud, Gmail, Yahoo, etc.)
    If you see your calendar in your iCloud account, that implies that you have set up your iCloud account to host (sync) your calendar, and perhaps contacts, email, and notes.  An iCloud account can only sync one user's information at a time so it is intended to support a single user.  You can have more than one iCloud account, and you can even have more than one iCloud account on the same device (but one has to be primary, and the secondary iCloud has limited capabilities), but a single iCloud account only supports a single user's content.
    Backup is the saving of your device's content and settings to use in case you need to recover these things, but you can't see the contents of your backup (just the size and device name).  You can backup more than one device to iCloud and you can backup to iCloud or you can backup to your computer, or both (one at a time though, you have to choose). 
    So, if your wife has her own email and calendar she can certainly do that in parallel to whatever account(s) you have for email and calendar.  But if you have only one iCloud account then only one of you can use it for email, calendar, etc.  But the backup of these accounts is really just a backup of the device's settings that link the device to these accounts. For example, if she uses Gmail then the backup of the iPad only backs up the fact that your iPad is set up to use her account, it does not backup the account itself (the content of her account is saved and preserved on Google's servers, not your device's backup).
    Does that make better sense?

  • I need to install Internet Explorer 6 or greater on my iMac to work with a program.  How is the best way to do that?

    I need to install Internet Explorer 6 or greater on my iMac (intel processor) running MacOS 10.6.8 to work with a program.  How is the best way to accomplish this?

    There is no way.  IE has not been available for the Mac for years now.
    Your only option is to install native Windows and use that - either through a bootcamp dual-boot scenario, or use a virtual machine to run windows in (eg. Parallels or VMWare Fusion).  Either way, you will need a full retail install disk for Windows.
    P.S. the last version of IE for Mac was for PPC machines, and it was discontinued in 2003.

  • Best way to write SELECT statement

    Hi,
    I am selecting fields from one table, and need to use two fields on that table to look up additional fields in two other tables.
    I do not want to use a VIEW to do this. 
    I need to keep all records in the original selection, yet I've been told that it's not good practice to use LEFT OUTER joins.  What I really need to do is multiple LEFT OUTER joins.
    What is the best way to write this?  Please reply with actual code.
    I could use 3 internal tables, where the second 2 use "FOR ALL ENTRIES" to obtain the additional data.  But then how do I append the 2 internal tables back to the first?  I've been told it's bad practice to use nested loops as well.
    Thanks.

    Hi,
    in your case having 2 internal table to update the one internal tables.
    do the following steps:
    *get the records from tables
    sort: itab1 by key field,  "Sorting by key is very important
          itab2 by key field.  "Same key which is used for where condition is used here
    loop at itab1 into wa_tab1.
      read itab2 into wa_tab2     " This sets the sy-tabix
           with key key field = wa_tab1-key field
           binary search.
      if sy-subrc = 0.              "Does not enter the inner loop
        v_kna1_index = sy-tabix.
        loop at itab2 into wa_tab2 from v_kna1_index. "Avoiding Where clause
          if wa_tab2-keyfield <> wa_tab1-key field.  "This checks whether to exit out of loop
            exit.
          endif.
    ****** Your Actual logic within inner loop ******
       endloop. "itab2 Loop
      endif.
    endloop.  " itab1 Loop
    Refer the link also you can get idea about the Parallel Cursor - Loop Processing.
    http://wiki.sdn.sap.com/wiki/display/Snippets/CopyofABAPCodeforParallelCursor-Loop+Processing
    Regards,
    Dhina..

  • What is the best way to migrate from Forms to ADF?

    We are in a big quagmire. Our company has been into Oracle Forms development for over 15 years. We have applications developed in Forms 6i and 10g. We have about 5 products and these 5 products have about 25 to 30 different versions. i.e. we maintain about 30 different versions of our applications. Each version of the application has about 100 forms and 100 reports.
    Now, since Forms has come to the End of life from 11g we want to move to ADF. We tried Forms to ADF migration tools but failed. So now we have decided to manually rewrite the applications in ADF.
    Our Forms / PL/SQL developers, designers and analysts (total about 40) are all Oracle Forms people. They have no experience in Java.
    What I want to know is:
    (1.) What is the BEST way to achieve this?
    (2.) Do we have to learn Java, JSF and ADF?? (i.e. All 3)?
    (3.) Is it mandatory to learn JSF??
    (4.) Assuming, comprehensive training can be given, how long will it take for Forms people to learn ADF?
    (5.) What type of training will be required?? (Java, JSF, ADF, JDeveloper etc.)
    (6.) How LONG will this take? i.e. to train all 40 and then get rewrite an application of 100+ forms and 100+ reports? (Ballpark is OK).
    (7.) Any other technologies we should learn??
    Edited by: user12240205 on Jul 18, 2012 5:48 AM

    Obvoiusly the longer you have for training the better but I think the minimum would be
    1) Java skills - I think to start off, 1 or two days reading something like Head First Java http://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
    2) I'd then get "The Quick Start Guide to Fusion Development" http://www.amazon.com/Quick-Start-Oracle-Fusion-Development/dp/0071744282/ref=sr_1_1?s=books&ie=UTF8&qid=1343201618&sr=1-1&keywords=jdeveloper+quick (declaration: I'm the author so have a vested interest, but I still think its a good place to start. - this should be about 2-3 days to read and also to try things out.
    3) In parallel I'd be watching these ADF Insider Basics http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html#a1 - a couple of hours
    4) I'd then try this tutorial http://www.oracle.com/webfolder/technetwork/tutorials/obe/jdev/obe11jdev/ps1/ria_application/developriaapplication_long.htm - 3 hours.
    5) Optionally, if you are coming from a Forms background I would also read http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/SummitADF/SummitADF_Redevelopment.pdf and watch http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/Forms_Redevelopment_ADF/Forms_Redevelopment_ADF.html - which is about 2 hours of work.
    I think this would be the absolute MINIMUM to at least be able to build some basic applications and to start feeling your way - everything else outlined in the "ADF COLLATERAL TOUR" http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/ADFTour/ADFTour.html could be learned as you start building some proof of concept. However, I'd wouldn't suggest you try building a real application with only one weeks exposure (in the same way I wouldn't expect you to design a product database with only one week training). I would probably expect your developers to have at least the above training and then spend about a month or so (minimum) building proof of concepts (or testing themselves with the ADF Insider Essentials Tasks). Furthermore, I'd probably expect you to have at least on senior developer/architect, with much more experience who can be making decisions on things like reuse, partitioning, architecture etc.
    Of course, this is all subjective but I hope it helps.
    regards
    Grant
    ps
    Of course, we also have formal Oracle University Training courses which you could attend (or they can be purchased to watch on line).

  • Best way to know correct forecast model - process chain set up with multiple forecast models

    Hi Experts,
    I need your help in selecting best forecast model for our company. We have some of the models already used for our company, and because of multiple models used it is taking very long time for process chain to finish. There is no existing documentation available on which model was used why initially. Please help me to make out forecasting process smooth.
    - What is the best way to know, which forecast model is correct and should be used for our forecasting process.
    - In case multiple forecasting models are really required to be used, please suggest ways to optimally schedule them in process chain.
    - At times we get messages like "not enough data available" for specific model - any way to avoid this.
    - How to optimally use parallel processing profiles forecasting process in process chain.
    - Things which should be avoided.
    Request your help, please share your experiences.
    Regards
    NB

    Hi Neelesh,
    There are many points you need to consider to redesign forecast process for your company/client.
    You need to select the best suited forecast model first depending on the business. This has to be well tested & agreed by business users. Complexity will be an outcome of this exercise with business users. Best id to give then a brief intro on all available models & then help them selection the best one as per their requirement.
    Auto selection models are generally more time taking & should be used only when you have no idea at all on the business/demand pattern.
    Run time will depend how you are clubbing the CVCs to get the forecast generated & also parallel processing. For parallel processing profile you will need to do trial & error testing along with help from Basis team on how many free dial up processes are available.
    Even you can run many forecast calculations in parallel if the product/cvcs are totally different. - As per my personal experience maximum run time reduction can be achieved here.
    Daily run is not advisable except only for businesses where you have too much dynamism in demand planning i.e. you expect the demands to be changed overnight. Most of the companies run forecast on monthly basis or at weekly basis at the max.
    "Not Enough data" will be a problem if you are having the irrelevant models used in forecast profiles. This means users are not bothered to maintain the needed data for he forecast calculations or they are not aware at all of the situation. Running such models on daily basis is not advised at all. Better users should use interactive forecasting & saving the results in such cases.
    Just to give a crude example we get forecast calculated on monthly basis for approximately 4 lac cvcs in less than 3 hrs using moving avg, seasonal linear regression, seasonal trend, croston models. We use parallel profiles also everywhere with 10 blocks & 500 cvc/block.
    Hope this helps. Let me know if you have nay more questions & also the results using any of this.
    Regards,
    Rahul

  • Best way to monitor the ON time of something in a minute ?!

    Greetings everybody,
    I first have to thank everybody offers help to others here.
    I have a question regarding the Best way to monitor the ON time of something in a minute.
    Say I have an On/Off switch that I want to know how many seconds that it was ON in the last minute (say) .. and reports that to a file or database each minute. So every minute I send a report to the DataBase with the number of seconds the switch was ON in the last minute.
    I already made a solution, But it's not that good I think and there is a problem there .. Please check my VI as it describes the solution more than my words here.
    Any comment is appreciated.
    Thanks in advance.
    Ayman Mohammad Metwally
    Automation Engineer
    Egypt - Cairo
    Attachments:
    On timet.vi ‏127 KB

    Hello Ayman,
    I attached a changed version of your vi. It uses two parallel loops.
    The communication is made via local variable and controled by a flag.
    Just have a look to get the idea.
    You can do the communication also on different ways like queues...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    OnTime 2.vi ‏37 KB

  • Best Way to Load Data in Hash Partition

    Hi,
    I have partitioning by Hash on a Large Table of 5 TB. We have to load Data say more than 500GB daily on that table from ETL.
    What is the best way to Load data into that Big Table which has hash Partition .
    Regards
    Sahil Soni

    Do you have any specific requirements to match records to lookup tables or it just a straight load - that is an insert?
    Do you have any specific performance requirements?
    The easiest and fastest way to load data into Oracle is via external file and parallel query/parallel insert. Remember that parallel DML is not enabled by default and you have to do so via alter session command. You can leverage multiple CPU cores and direct path operation to perform the load.
    Assuming your database is on a linux/unix server - you could NFS load the file if it is on a remote system, but then you will be most likely limited by network transfer speed.

Maybe you are looking for