If i use a sub-vi 3 times simultaneously in my main program....

If i use a sub-vi 3 times simultaneously in my main program. Do i need
to create that many of those sub-vi's and the VI's inside the that
sub-VI.

In my main VI, I am calling a sub vi to do math on the data. I am
doing this process simulataneously on the data collected from three
channels. I created three sub vi's with same functionality but with
different names so that they can be called separetly at the same time.
My question is do I also need to create that many copies of the
sub-vi's which I am calling inside the Sub-VI used to do math on the
data collected from channels?
0
x9561 (148623)
6/14/2004 7:17:00 PM
comp.lang.labview 35389 articles. 14 followers. vasusachin24 (1) is leader. Post Follow

10 Replies
400 Views

Similar Articles

[PageSpeed] 37
Simple answer is yes, you would need copies of the subvis also.
LabVIEW can only have one copy of a certain named VI in memory at a
time.

Unless...

You make the VI Reentrant. Setting a VI to reentrant causes LabVIEW to
open each instance of the VI in it's own data space, so it acts the
same as having differently named VI that are the same. You set this by
going into the VI properties, select the Execution catagory and
checking the "Reentrant Execution" checkbox. You wold also need to do
this on any subvis you want to run as separate copies. The propertiy
is not inherited.
0
x9561 (148623)
6/14/2004 7:54:17 PM
if i make my sub vi's as reentrant, do I lose any process speed, in
other words are there any limitation for using the reentrant
execution? and thanks for your reply.
0
x9561 (148623)
6/15/2004 11:23:13 AM
As far as I know, making a subvi reentrant would have no performance
difference over having multiple VIs with different names. Maybe an app
eng could verify this.

Each time a reentrant VI is called from a new location in the code, it
creates a separate area for it in LabVIEWs dataspace, the same as
calling a new subvi would do.

Ed
0
x9561 (148623)
6/15/2004 12:26:12 PM
No!

You may pick some up.

What you will loose is debugging.

The main "gotcha" is the seperate memory space issue mentioned
earlier.

This means that if your sub-VI's use local storage (like shift
register that store results from the last call for use in the next)
are distict for each occurence of the sub-VI in a diagram.

Also, if your sub-VI use larege amounts of memory the use will be
duplicated between each instance.

Ben
0
x9561 (148623)
6/15/2004 12:28:35 PM
My "NO" was to Mudda Q.

I am the same page as Ed.

Ben
0
x9561 (148623)
6/15/2004 12:29:51 PM
If the subvi does not contain data that are dependent on a previous
run , such as local variable or shift register data, then there is no
need to make the vi reentrant.
0
x9561 (148623)
6/15/2004 12:35:48 PM
If the sub-VI is CPU intensive,
and
you do not want one call of the sub-VI to delay another call to the
sub-VI

Then re-entrancy is very useful.

Ben
0
x9561 (148623)
6/15/2004 12:39:24 PM
In principle, Yes,
However, how much true that is depends on how LabView (R/D)developers
are implementing it, and things have been changing between LabView
versions, to different degrees, all the time.
0
x9561 (148623)
6/15/2004 1:22:16 PM
Yes sir!

From what I have read about LV 7.X and hyperthreading, two of these
re-entrant sub-VI's can be executing simultaneously without having to
resort to dual-proccessors.

Ben
0
x9561 (148623)
6/15/2004 1:26:34 PM
Thanks to all of you for your comments,

Mudda.
0
x9561 (148623)
6/15/2004 2:24:42 PM
Reply:
Similar Artilces:

Use of cluster
Hi I am not familar with the use of cluster,. See my attahed in verion 7.1 How am I going to manipulate the contols or indicators, I supposed only property node can work, isn't it?   Clement cluster1.vi: http://forums.ni.com/attachments/ni/170/177767/1/cluster1.vi If you want to change the values of the cluster elements on the front panel, then you can either write to the Value property of the cluster (or the Value property of the individual cluster elements), write to a local variable of the cluster, or write to the indicator terminal (in the case of a cluster indicator).&...

Having Trouble with File I/O (win32 API) -- Using NASM and ALINK
I'm not sure what I am doing wrong. I run the exe, and a file is not created. I'm still trying to figure out how to debug this thing in windows. I assembled the below code with: nasm -f obj createfile.asm alink -oPE -subsys con createfile.obj Here's my source code: import CreateFileA kernel32.dll import ExitProcess kernel32.dll import CloseHandle kernel32.dll import WriteFile kernel32.dll extern CreateFileA extern ExitProcess extern CloseHandle extern WriteFile %include "win32n.inc" ; downloaded at rs1.szif.hu/~tomcat/win32 -- contains definitions for win32 par...

Question about using split
All I have a string which I want to split on the characters "SA", simple enough, I also want to (in the same expression) split on "sa" just to catch any lowercase characters, however I would like the characters SA/sa to remain in the array after the split, it's simple enough to append it back on, but it is a little clumsy and has caused some problems. Can anyone suggest a solution? PT In article <binuh4$bf0j0$1@ID-116287.news.uni-berlin.de>, Max Adams <rubberducky703@hotmail.com> wrote: : All I have a string which I want to split on the characters ...

shortcut key binding with 3 c's (control key)
Hi, What is the reason for some packages having keystrokes(binding) of length 3 in which the control key has to be pressed in all 3 of them and in some packages only two of them. For example auctex wants C-c C-f C-i, whereas slime requires C-c C-d h, (whereas the documentation says that C-c C-d C-h, should work equally good). Is there some way which will allow me to use C-c c-f C-i or C-c C-f i and several other similar commands? Thanks for any tips. -- Surendra Singhi www.public.asu.edu/~sksinghi Surendra Singhi wrote: > Hi, > For example auctex wants C...

Re: program editor refresher (Solaris) #3 670194
On Mon, 3 Jul 2006, toby dunn wrote: > Kevin what editor are you using, the X editor? Toby, I am using the stock "program editor" window of SAS. Kevin Kevin Viel Department of Epidemiology Rollins School of Public Health Emory University Atlanta, GA 30322 ...

library update #3
I've reported here two or three times before, but let me recap: Our local library was closed for several months for expansion and rennovation. Before it reopened, I was asked by the director to install Linux of four used Compaq computers she picked up cheap (~850MHZ P-III) - to be used for public internet access, word processing, etc. I installed Mandrake 10.1OE on the four Compaq's (after replacing one bad hard disk), and installed 'Damn Small Linux' on an additional 233 MHZ P2 - there was an issue with the NIC card - several distros did not detect it, and I really didn'...

D-link with HL-760 on OsX 10.3.5
Recently got a print server D-link DP-301p+ My setup works ok via ip and appletalk And the server is recognized in chooser (Os 9.1) Also seen in printlist by OsX. My problem is with assigning a proper driver For my Brother HL-760 laserwriter. I do not have a mac driver for it. None of the supplied ppd's works. Also downloaded beta 5 gimp print. The installation added some more ppd's, None of these seems suitable. The printer manual tells me that the Printer supports tree different emulations. HP Laserjet 5p Epson FX 850 IBM Proprinter XL Can't find any of these abov...

updated "Using Python From IDL" ebook
All, I just added a chapter to the ebook on creating tones from IDL using a Pyth= on package called pyaudio. I also found a free plugin for Visual Studio th= at gives you a good IDE for python. (http://pytools.codeplex.com/) This not only gives a nice DE it also allows us to do interactive debugging= with Python from IDL. Of course, I explain it all in the book which can b= e purchased here (http://www.rlkling.com/using-python-from-idl.htm) for $5.= 00 US. If you have already purchased the book you are supposed to get free= updates. Thanks! Ronn Kling On Wednesday, Jul...

How to find free disk space using C
Hi, I am trying to incorporate a code snippet which would calculate the free disk space of any drive passed to it as argument but presently stuck with it. Can anyone help me out with sample code? I have already tried with the follwoing: typedef BOOL (WINAPI *P_GDFSE)(LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); void main (int argc, char **argv) { BOOL fResult; char *pszDrive = NULL, szDrive[4]; DWORD dwSectPerClust, dwBytesPerSect, dwFreeClusters, dwTotalClusters; ...

When to use Tcl_DecrRefCount() and when not to?
I am using SWIG to interface a C library (libgpgme) that uses callbacks to Tcl and have written some C code to implement Tcl coded callbacks. The SWIG interface code looks like this: %{ /* C Structure containing the Tcl_Interp and the script prefix. */ typedef struct { Tcl_Interp *theinterp; Tcl_Obj *thecommand; } tcl_callback_hook; /* Actual C callback, that evals a Tcl script made from the stored script prefix, with the callback parameters uid_hint, passphrase_info, and prev_was_bad lappended. The result of this evaluation is written to the file descr...

Free program in exchange for some mathematics from You
I need the mathematic of the 3DS Max component known as the Nurbs Point Curve. Or should I say I need the interpolated Nurbs curve of degree n. I know I have to iterate 3 or more times the equation but I do not know how and what. I am trying to implement the code of the Nurbs Point Curve to my own program. When it'll be ready, it'll will very fast count the Curves and surfaces on them. Thank You for Your help, in exchange for your invested work I am letting You know about the program I am writing, and some extra basics I did in the past: http://solair.eunet.yu/~yyy/index.htm h...

#1 #n+1 #2n+1 #2 #n+2 #2n+2 #3 #n+3 #2n+3 #n #2n #3n #1 #2 #3 #n #n+1 #n+2 #n+3 #2n #2n+1 100 Gbps aggregate stream of 64/66b words virtual lane markers virtual lane 1 virtual lane 2 virtual lan
#1 #n+1 #2n+1 #2 #n+2 #2n+2 #3 #n+3 #2n+3 #n #2n #3n #1 #2 #3 #n #n+1 #n+2 #n+3 #2n #2n+1 100 Gbps aggregate stream of 64/66b words virtual lane markers virtual lane 1 virtual lane 2 virtual lane 3 virtual lane n Simple 66-bit word level round robin distribution Transmit PM Transmit PM Receive PM Receive PM Transmit PC Receive PC 1 0.0 1.0 0.1 0.2 0.3 1.2 1.2 1.1 0.0 1.0 0.1 1.1 2.0 3.0 4.0 6.0 7.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 17.0 18.0 19.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 1...

using coherence function
Hi All, I'm having some trouble understanding how to use the "mscohere" command to get my coherence function. I have a bunch of force and corresponding acceleration signals which I have measured at one point in my test structure. I know I have to use the average of all of these in the coherence function. From the "mscohere" command in matlab, I see that the inputs are x and y, which in my case would be force and acc. however this just allows me to look at one measurement, not the average of all the measurements. If I were to just use 1 measurement, the coherence funct...

Need some help with pre-processign functions in C using Doxygen ...
Hi, I'm currently documenting source code in C and would like to skip some functions that don't need to be documented. The syntax that I'm using is defined below. #ifndef SKIP /* Code to be skipped */ #endif SKIP Where SKIP= Predifined Tag Name I'd like to know if anyone on this list has been using Doxygen to pre-process code fragments. In case you do pre-process the code, I'd appreciate your inputs with an alternative method to ignore code fragments. The problem is that Doxygen compiles it but the C compiler reads the /* Code to be skipped */ as comments !!! Plea...

Data store block problem during minor time steps
I have some problems with the behaviour of Simulink during minor time steps for continuos solvers. The problem is related with Data Store blocks. General structure of the problematic model is as such: A is the data store name Data Store Read Block of A->Switch-Case->Various Switch Case Action Subsystems(There are other read and write operations of data store blocks unrelated with A)->All output signals merged-> Output is written to Data Store Write Block of A All data store diagnostics are on, so i can ensure the order of read and write procedure for Data Store Block A. What...

using setTimeout when using prototype
I have an object, and I define the following: var processForm=new Object(); processForm=function(inservleturl) { this.inservleturl = inservleturl; this.submitForm(); } processForm.prototype.submitForm2=function() { } processForm.prototype.submitForm=function() { setTimeout("submitStep2()", 20); } How can the submitForm function's setTimeout call submitStep2? Thank you. processForm=function(inservleturl) { this.inservleturl = inservleturl; this.submitForm(); } processForm.prototype.submitForm2=function() { ...

OT: What filtering does Hotmail use?
This is completely off-topic, but I hope someone here knows the answer.=20 When talking to one of my sisters today I asked about an invitation I = sent her last week to her hotmail.com address. She said that she did not = receive it. One of my other sisters did not respond to the same email and it = turns out that she also uses hotmail.com. Another friend who uses hotmail did = not respond to a recent email as I expected them to. I created my own hotmail account tonight and sent an email to it from my domain more than two hours ago, that email has not yet arrived in my = hotmail account. My ...

How can i read data from more than one channel at the same time?
Hello I'm trying to get data&nbsp;from two channels simultaneously using the example Acq &amp; Cont Graph, to save it in a file excel.&nbsp;How&nbsp;can i read the two channels at once and displayed on the graphic? &nbsp; Thanks &nbsp; PS I am using Labview 6.0.1 Cont Acq&Graph (buffered)prueba.vi: http://forums.ni.com/attachments/ni/170/332868/1/Cont Acq&Graph (buffered)prueba.vi Just put mulitple channels in your 'channel(0)' control. If each channel will have the same input limits,&nbsp;you can specify, for example, 0:2 or 0,2,3. If you wan...

Re: Scope of macro variable using "call symput" #12
Perahps the way SAS calculates the scope of a macro variable created by CALL SYMPUT violates the principle of least astonishment. It might make more sense for CALL SYMPUT to create a new macro-level symbol table, rather than searching upwards to find one that already exists. Or maybe not. The SYMPUTX way, which lets you specify the scope, is slightly more work to use but can create results that don't require thought or knowledge of context. On Mon, 24 Mar 2008 09:48:11 -0400, "Chang Chung" <chang_y_chung@HOTMAIL.COM> said: > On Sun, 23 Mar 2008 02:05:16 -0700, Rola...

Cannot keep more than one program open on screen at a time
Cannot keep more than one program open on screen at a time. This happened all of a sudden. Always kept 2 - 3 programs on screen In article <5bbe891e-c97e-49ae-ae74-c1698b9cb6a2@x25g2000prf.googlegroups.com>, researcher <maliburon64@gmail.com> wrote: > Cannot keep more than one program open on screen at a time. This > happened all of a sudden. Always kept 2 - 3 programs on screen My guess is that you've got the Finder set to hide all but the active application. In the Finder (click the desktop to make it active), select "Show All" under the Finder men...

What Rbls are you using
Hello I would like to know which DNS RBLs everyone is using and what do you find most effective. I just started using dsn.rfc-ignorant.org and list.dsbl.org. So far no complaints. I have also been using bl.spamcop.net and sbl.spamhaus.org for awhile. They're ok however some get through. Thanks, J -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, 13 Jan 2006 20:39:21 -0800, jpecki wrote: > Hello > I would like to know which DNS RBLs everyone is using and what do you > find most effective. I just started using dsn.rfc-ignorant.org and > list.dsbl.org. So far no compl...

voive recognition using matlab
good day, i would like to ask a program/code using MatLab for my project voice recognition for my subject... thank you very much....... ...

Is it possible to use an Object as value for a <html:select> (i'm using struts)
Hi, I'm having trouble with struts, well actually i don't know if the problem is struts or instead i'm assuming html to be capable of something it's not. I have a ValidatorForm, say VF and one of it's attibutes called organismo is an object of type Ob1, Ob1 being a bean definded in another file, Ob1 has just two attributes a and b and their respective setters and getters. I want that attribute to be filled with the value of a <html:select>, depending on what the user chooses from the options available. To get the options i'm using the next: <html:select pro...

using ethereal
I have Fedora Core 3. When I did my install I did not install X windows or any GUI. I also did not install ethereal. Now I would like to use ethereal, so I installed Xwindows and KDE. I used yum install ethereal and it showed it installed it. But I cannot figure out how to run ethereal. I cannot find any binary to run. I found one post that said I should have an ethereal file under /usr/X11R6/bin but I don't. thank you jb Jason Benway wrote: > I have Fedora Core 3. When I did my install I did not install X windows or > any GUI. I also did not install ethereal. >...

[rfc-dist] RFC 5641 on Layer 2 Tunneling Protocol Version 3 (L2TPv3) Extended Circuit Status Values
A new Request for Comments is now available in online RFC libraries. RFC 5641 Title: Layer 2 Tunneling Protocol Version 3 (L2TPv3) Extended Circuit Status Values Author: N. McGill, C. Pignataro Status: Standards Track Date: August 2009 Mailbox: nmcgill@cisco.com, cpignata@cisco.com Pages: 11 Characters: 23133 Updates: RFC3931, RFC4349, RFC4454, RFC4591, RFC4719 I-D Tag: draft-ietf-l2tpext-circuit-status-extensi...