You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@airavata.apache.org by 안신영 <sy...@etri.re.kr> on 2013/04/09 10:38:38 UTC

Question on ForEach

Hi Suresh.
This is Another questions different from my previous emails.

I am tring to use ForEach component.
I have register a service ‘bwa_aln_bwd’ which works well when I do not use ForEach component.
The output type of bwa_aln_bwd is URI type.

[cid:image001.png@01CE3548.688A3AD0]

Next, I compose a new workflow using ForEach, EndForEach component.
[cid:image002.png@01CE3548.688A3AD0]

When I executed as follows, I gave “/home/team/genome/Demo/sample_1.fq.00, /home/team/genome/Demo/sample_1.fq.01” as input_3
and “/home/team/genome/DemoOut/sample_1.fq.00.sai, /home/team/genome/DemoOut/sample_1.fq.01.sai” as input_4

[cid:image003.png@01CE3548.688A3AD0]
But Airavata show ‘Error Invoking API’

Error messages are

org.apache.airavata.client.api.AiravataAPIInvocationException: Error invoking API
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:228)
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperiment(ExecutionManagerImpl.java:80)
at org.apache.airavata.xbaya.ui.experiment.WorkflowInterpreterLaunchWindow$3.run(WorkflowInterpreterLaunchWindow.java:322)
Caused by: org.apache.airavata.workflow.model.component.ComponentException: could not find definition for type {http://airavata.apache.org/xbaya/Workflow1/xsd/}URIParameterTypeArrayType in {http://airavata.apache.org/xbaya/Workflow1/}Workflow1
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseType(WSComponent.java:468)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseMessage(WSComponent.java:398)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseOperation(WSComponent.java:369)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parsePortType(WSComponent.java:353)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parse(WSComponent.java:345)
at org.apache.airavata.workflow.model.component.ws.WSComponent.<init>(WSComponent.java:132)
at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:136)
at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:110)
at org.apache.airavata.workflow.model.wf.Workflow.getInputs(Workflow.java:484)
at org.apache.airavata.client.impl.ExecutionManagerImpl.getWSComponentPortInputs(ExecutionManagerImpl.java:268)
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:185)
... 2 more

I expected that ForEach read StringArray, EndForEach wrote URIArray type.
I thought I don’t need to specify URIArray type as application parameter because ForEach, EndForEach hand Array type.

Any comment will be beneficial.
Thanks in advance.

Shinyoung.
From: Suresh Marru [mailto:smarru@apache.org]
Sent: Friday, April 05, 2013 9:19 PM
To: users@airavata.apache.org
Subject: Re: Another Question on parallel execution!

Hi Shinyoung,

Just drop both the applications in parallel and do not connect them. There can be multiple independent paths in the workflow and Airavata will execute them in parallel. If you connect the edges (inputs/outputs) then it assumes data dependency. You can connect the corners on the nodes which will be shown as dotted lines that will create control dependencies -- that is even if you do not have data dependency, execute one after another. But your case is simple, just have them mutually independent.

Suresh

On Apr 5, 2013, at 5:00 AM, 안신영 <sy...@etri.re.kr>> wrote:


Hi guys!

Let’s assume that a workflow contains several works(services). Some works are independent with each other, some works are dependent some other works.
Dependency mean that a work should be executed after another dependent work’s completion.
In this case, How can I configure some independent work to be executed simultaneously?
I will run this workflow in HPC cluster.

Regards,
Shinyoung.


Re: Question on ForEach

Posted by Suresh Marru <sm...@apache.org>.
I meant change it to StringArray Types.

Suresh

On Apr 10, 2013, at 1:17 AM, 안신영 <sy...@etri.re.kr> wrote:

> Hi Suresh
>  
> You’re right. I used one String with commas for the input of ForEach.
> What do you mean that “You should change the inputs bwdFqFile and bwdSaiFile to String Arrays”?
> Do you mean I have to change the definition of web service argument(bwdFqFile and bwdSaiFile) to StringArray Type?
> Or
> Do you mean I have to insert not “a comma separated string” but some other format of “String Arrays” when executing workflow?
> I wonder “String Arrays” means a string with space character for separation.
>  
> Shinyoung.
> From: Suresh Marru [mailto:smarru@apache.org] 
> Sent: Wednesday, April 10, 2013 11:11 AM
> To: users@airavata.apache.org
> Subject: Re: Question on ForEach
>  
> Hi Shinyoung,
>  
> Couple of things. You are using String and using Foreach, so it is assumed as one string with comas in it. You should change the inputs bwdFqFile and bwdSaiFile inputs to String Arrays. 
>  
> Suresh
>  
> On Apr 9, 2013, at 4:38 AM, 안신영 <sy...@etri.re.kr> wrote:
> 
> 
> Hi Suresh.
> This is Another questions different from my previous emails.
>  
> I am tring to use ForEach component.
> I have register a service ‘bwa_aln_bwd’ which works well when I do not use ForEach component.
> The output type of bwa_aln_bwd is URI type.
>  
> <image001.png>
>  
> Next, I compose a new workflow using ForEach, EndForEach component.
> <image002.png>
>  
> When I executed as follows, I gave “/home/team/genome/Demo/sample_1.fq.00, /home/team/genome/Demo/sample_1.fq.01” as input_3
> and “/home/team/genome/DemoOut/sample_1.fq.00.sai, /home/team/genome/DemoOut/sample_1.fq.01.sai” as input_4
>  
> <image003.png>
> But Airavata show ‘Error Invoking API’
>  
> Error messages are
>  
> org.apache.airavata.client.api.AiravataAPIInvocationException: Error invoking API
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:228)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperiment(ExecutionManagerImpl.java:80)
> at org.apache.airavata.xbaya.ui.experiment.WorkflowInterpreterLaunchWindow$3.run(WorkflowInterpreterLaunchWindow.java:322)
> Caused by: org.apache.airavata.workflow.model.component.ComponentException: could not find definition for type {http://airavata.apache.org/xbaya/Workflow1/xsd/}URIParameterTypeArrayType in {http://airavata.apache.org/xbaya/Workflow1/}Workflow1
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseType(WSComponent.java:468)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseMessage(WSComponent.java:398)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseOperation(WSComponent.java:369)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parsePortType(WSComponent.java:353)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parse(WSComponent.java:345)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.<init>(WSComponent.java:132)
> at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:136)
> at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:110)
> at org.apache.airavata.workflow.model.wf.Workflow.getInputs(Workflow.java:484)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.getWSComponentPortInputs(ExecutionManagerImpl.java:268)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:185)
> ... 2 more
>  
> I expected that ForEach read StringArray, EndForEach wrote URIArray type.
> I thought I don’t need to specify URIArray type as application parameter because ForEach, EndForEach hand Array type.
>  
> Any comment will be beneficial.
> Thanks in advance.
>  
> Shinyoung.
> From: Suresh Marru [mailto:smarru@apache.org] 
> Sent: Friday, April 05, 2013 9:19 PM
> To: users@airavata.apache.org
> Subject: Re: Another Question on parallel execution!
>  
> Hi Shinyoung,
>  
> Just drop both the applications in parallel and do not connect them. There can be multiple independent paths in the workflow and Airavata will execute them in parallel. If you connect the edges (inputs/outputs) then it assumes data dependency. You can connect the corners on the nodes which will be shown as dotted lines that will create control dependencies -- that is even if you do not have data dependency, execute one after another. But your case is simple, just have them mutually independent.
>  
> Suresh
>  
> On Apr 5, 2013, at 5:00 AM, 안신영 <sy...@etri.re.kr> wrote:
> 
> 
> 
> Hi guys!
>  
> Let’s assume that a workflow contains several works(services). Some works are independent with each other, some works are dependent some other works.
> Dependency mean that a work should be executed after another dependent work’s completion.
> In this case, How can I configure some independent work to be executed simultaneously?
> I will run this workflow in HPC cluster.
>  
> Regards,
> Shinyoung.
>  


RE: Question on ForEach

Posted by 안신영 <sy...@etri.re.kr>.
Hi Suresh

You’re right. I used one String with commas for the input of ForEach.
What do you mean that “You should change the inputs bwdFqFile and bwdSaiFile to String Arrays”?
Do you mean I have to change the definition of web service argument(bwdFqFile and bwdSaiFile) to StringArray Type?
Or
Do you mean I have to insert not “a comma separated string” but some other format of “String Arrays” when executing workflow?
I wonder “String Arrays” means a string with space character for separation.

Shinyoung.
From: Suresh Marru [mailto:smarru@apache.org]
Sent: Wednesday, April 10, 2013 11:11 AM
To: users@airavata.apache.org
Subject: Re: Question on ForEach

Hi Shinyoung,

Couple of things. You are using String and using Foreach, so it is assumed as one string with comas in it. You should change the inputs bwdFqFile and bwdSaiFile inputs to String Arrays.

Suresh

On Apr 9, 2013, at 4:38 AM, 안신영 <sy...@etri.re.kr>> wrote:


Hi Suresh.
This is Another questions different from my previous emails.

I am tring to use ForEach component.
I have register a service ‘bwa_aln_bwd’ which works well when I do not use ForEach component.
The output type of bwa_aln_bwd is URI type.

<image001.png>

Next, I compose a new workflow using ForEach, EndForEach component.
<image002.png>

When I executed as follows, I gave “/home/team/genome/Demo/sample_1.fq.00, /home/team/genome/Demo/sample_1.fq.01” as input_3
and “/home/team/genome/DemoOut/sample_1.fq.00.sai, /home/team/genome/DemoOut/sample_1.fq.01.sai” as input_4

<image003.png>
But Airavata show ‘Error Invoking API’

Error messages are

org.apache.airavata.client.api.AiravataAPIInvocationException: Error invoking API
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:228)
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperiment(ExecutionManagerImpl.java:80)
at org.apache.airavata.xbaya.ui.experiment.WorkflowInterpreterLaunchWindow$3.run(WorkflowInterpreterLaunchWindow.java:322)
Caused by: org.apache.airavata.workflow.model.component.ComponentException: could not find definition for type {http://airavata.apache.org/xbaya/Workflow1/xsd/}URIParameterTypeArrayType in {http://airavata.apache.org/xbaya/Workflow1/}Workflow1
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseType(WSComponent.java:468)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseMessage(WSComponent.java:398)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parseOperation(WSComponent.java:369)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parsePortType(WSComponent.java:353)
at org.apache.airavata.workflow.model.component.ws.WSComponent.parse(WSComponent.java:345)
at org.apache.airavata.workflow.model.component.ws.WSComponent.<init>(WSComponent.java:132)
at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:136)
at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:110)
at org.apache.airavata.workflow.model.wf.Workflow.getInputs(Workflow.java:484)
at org.apache.airavata.client.impl.ExecutionManagerImpl.getWSComponentPortInputs(ExecutionManagerImpl.java:268)
at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:185)
... 2 more

I expected that ForEach read StringArray, EndForEach wrote URIArray type.
I thought I don’t need to specify URIArray type as application parameter because ForEach, EndForEach hand Array type.

Any comment will be beneficial.
Thanks in advance.

Shinyoung.
From: Suresh Marru [mailto:smarru@apache.org<http://apache.org>]
Sent: Friday, April 05, 2013 9:19 PM
To: users@airavata.apache.org<ma...@airavata.apache.org>
Subject: Re: Another Question on parallel execution!

Hi Shinyoung,

Just drop both the applications in parallel and do not connect them. There can be multiple independent paths in the workflow and Airavata will execute them in parallel. If you connect the edges (inputs/outputs) then it assumes data dependency. You can connect the corners on the nodes which will be shown as dotted lines that will create control dependencies -- that is even if you do not have data dependency, execute one after another. But your case is simple, just have them mutually independent.

Suresh

On Apr 5, 2013, at 5:00 AM, 안신영 <sy...@etri.re.kr>> wrote:



Hi guys!

Let’s assume that a workflow contains several works(services). Some works are independent with each other, some works are dependent some other works.
Dependency mean that a work should be executed after another dependent work’s completion.
In this case, How can I configure some independent work to be executed simultaneously?
I will run this workflow in HPC cluster.

Regards,
Shinyoung.



Re: Question on ForEach

Posted by Suresh Marru <sm...@apache.org>.
Hi Shinyoung,

Couple of things. You are using String and using Foreach, so it is assumed as one string with comas in it. You should change the inputs bwdFqFile and bwdSaiFile inputs to String Arrays. 

Suresh

On Apr 9, 2013, at 4:38 AM, 안신영 <sy...@etri.re.kr> wrote:

> Hi Suresh.
> This is Another questions different from my previous emails.
>  
> I am tring to use ForEach component.
> I have register a service ‘bwa_aln_bwd’ which works well when I do not use ForEach component.
> The output type of bwa_aln_bwd is URI type.
>  
> <image001.png>
>  
> Next, I compose a new workflow using ForEach, EndForEach component.
> <image002.png>
>  
> When I executed as follows, I gave “/home/team/genome/Demo/sample_1.fq.00, /home/team/genome/Demo/sample_1.fq.01” as input_3
> and “/home/team/genome/DemoOut/sample_1.fq.00.sai, /home/team/genome/DemoOut/sample_1.fq.01.sai” as input_4
>  
> <image003.png>
> But Airavata show ‘Error Invoking API’
>  
> Error messages are
>  
> org.apache.airavata.client.api.AiravataAPIInvocationException: Error invoking API
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:228)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperiment(ExecutionManagerImpl.java:80)
> at org.apache.airavata.xbaya.ui.experiment.WorkflowInterpreterLaunchWindow$3.run(WorkflowInterpreterLaunchWindow.java:322)
> Caused by: org.apache.airavata.workflow.model.component.ComponentException: could not find definition for type {http://airavata.apache.org/xbaya/Workflow1/xsd/}URIParameterTypeArrayType in {http://airavata.apache.org/xbaya/Workflow1/}Workflow1
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseType(WSComponent.java:468)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseMessage(WSComponent.java:398)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parseOperation(WSComponent.java:369)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parsePortType(WSComponent.java:353)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.parse(WSComponent.java:345)
> at org.apache.airavata.workflow.model.component.ws.WSComponent.<init>(WSComponent.java:132)
> at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:136)
> at org.apache.airavata.workflow.model.component.ws.WSComponentFactory.createComponent(WSComponentFactory.java:110)
> at org.apache.airavata.workflow.model.wf.Workflow.getInputs(Workflow.java:484)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.getWSComponentPortInputs(ExecutionManagerImpl.java:268)
> at org.apache.airavata.client.impl.ExecutionManagerImpl.runExperimentGeneral(ExecutionManagerImpl.java:185)
> ... 2 more
>  
> I expected that ForEach read StringArray, EndForEach wrote URIArray type.
> I thought I don’t need to specify URIArray type as application parameter because ForEach, EndForEach hand Array type.
>  
> Any comment will be beneficial.
> Thanks in advance.
>  
> Shinyoung.
> From: Suresh Marru [mailto:smarru@apache.org] 
> Sent: Friday, April 05, 2013 9:19 PM
> To: users@airavata.apache.org
> Subject: Re: Another Question on parallel execution!
>  
> Hi Shinyoung,
>  
> Just drop both the applications in parallel and do not connect them. There can be multiple independent paths in the workflow and Airavata will execute them in parallel. If you connect the edges (inputs/outputs) then it assumes data dependency. You can connect the corners on the nodes which will be shown as dotted lines that will create control dependencies -- that is even if you do not have data dependency, execute one after another. But your case is simple, just have them mutually independent.
>  
> Suresh
>  
> On Apr 5, 2013, at 5:00 AM, 안신영 <sy...@etri.re.kr> wrote:
> 
> 
> Hi guys!
>  
> Let’s assume that a workflow contains several works(services). Some works are independent with each other, some works are dependent some other works.
> Dependency mean that a work should be executed after another dependent work’s completion.
> In this case, How can I configure some independent work to be executed simultaneously?
> I will run this workflow in HPC cluster.
>  
> Regards,
> Shinyoung.
>