CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)
-   -   Fluent UDF on parallel computing (https://www.cfd-online.com/Forums/fluent-udf/44332-fluent-udf-parallel-computing.html)

Andrea April 3, 2007 09:13

Fluent UDF on parallel computing
 
Hello guys,

I use a cluster with three compute nodes. When I build an UDF (transient velocity profile B.C.) on the host of this cluster, during the process of load, I find this error:

******************************************** fluent_mpi.6.3.26: Rank 0:0: MPI_Barrier: MPI BUG: no requests done

MPI Application rank 0 exited before MPI_Finalize() with status 1

17507: No such process

17506: No such process

28245: No such process

28246: No such process

999999 (../../src/mpsystem.c@1123): mpt_read: failed: errno = 104

999999: mpt_read: error: read failed trying to read 30 bytes: Connection reset by peer

The fluent process could not be started.

********************************************

Do you know what happens? I would underline that I find this error when I load UDF, the building process works fine.

Thanks

Andrea

Bogdan April 4, 2007 03:03

Re: Fluent UDF on parallel computing
 
Could you post your DEFINE_PROFILE function? I never had this kind of error in parallel FLUENT, so without the source code I cannot say anything.

Andrea April 4, 2007 03:11

Re: Fluent UDF on parallel computing
 
Hi Bodgan,

this is the source code:

/************************************************** ********************

unsteady.c March 22, 2007 05:25:31 PM

UDF for specifying a transient velocity profile boundary condition

max velocity is 30 m/s ************************************************** *********************/

#include "udf.h"

DEFINE_PROFILE(unsteady_velocity, thread, position) { face_t f; real t = CURRENT_TIME; real teta = 2*M_PI*(t);

begin_f_loop(f, thread)

{

/* Teta deve essere espresso in radianti */

F_PROFILE(f, thread, position) = 30*sin(teta);

} end_f_loop(f, thread) }

Thanks very much!

Andrea

Bogdan April 4, 2007 03:17

Re: Fluent UDF on parallel computing
 
try like this:

DEFINE_PROFILE(unsteady_velocity, thread, position) {

#if !RP_HOST

face_t f; real t = CURRENT_TIME; real teta = 2*M_PI*(t);

begin_f_loop(f, thread)

{

/* Teta deve essere espresso in radianti */

F_PROFILE(f, thread, position) = 30*sin(teta);

} end_f_loop(f, thread)

#endif

}


Andrea April 4, 2007 03:30

Re: Fluent UDF on parallel computing
 
Doesn't work!

I don't know... A cluster problem?

Library "libudf/lnamd64/2d_host/libudf.so" openedfluent_mpi.6.3.26: Rank 0:0: MPI_Barrier: MPI BUG: no requests done MPI Application rank 0 exited before MPI_Finalize() with status 1 27397: No such process 27396: No such process 15441: No such process 15440: No such process 16739: No such process

999999 (../../src/mpsystem.c@1123): mpt_read: failed: errno = 104

999999: mpt_read: error: read failed trying to read 30 bytes: Connection reset by peer The fluent process could not be started.

Bogdan April 4, 2007 05:52

Re: Fluent UDF on parallel computing
 
I have no idea, try to talk with your system administrator, at first sight might be a communication problem.

Bogdan April 4, 2007 05:58

Re: Fluent UDF on parallel computing
 
I tested the function on my system and it worked very well, so probably is a problem of system not of FLUENT, so speak to your administrator.

Andrea April 4, 2007 06:04

Re: Fluent UDF on parallel computing
 
Thanks very much Bogdan! I'll talk with system administrator...

Have a good day

jan April 5, 2007 05:52

Re: Fluent UDF on parallel computing
 
Have you specified the full path for the udf? There is some documentation about udf for parallel Jan

Andrea April 5, 2007 06:04

Re: Fluent UDF on parallel computing
 
Hi Jan,

probably the problem is due to a system/server problem. The full path to udf is right but problably one or more node can't "see" udf.

Tnx

Andrea

julian April 5, 2007 08:56

Re: Fluent UDF on parallel computing
 
Can we just take a step back here. 1. I am assuming that Fluent will run over the 4 nodes on your cluster (this tells us that FLuent is set up correctly)

2. Can you run the UDF on a simplified geometry on one node (this tells us that the UDF will work)

3. Does this problem occur on 2 and three nodes as well as 4 (this suggests that it might be a scaling problem)

4. Can you run a simple MPI "Hello World" using the Fluent MPI to check that is installed correctly

5. Is your udf visible to all of the compute nodes? That is, does it reside on a disk partition that is visible from all of the nodes, or can only the master node where you stare Fluent see the udf

After that, I'm stuck. Julian

Andrea April 5, 2007 09:07

Re: Fluent UDF on parallel computing
 
Hi Julian,

1 - right 2 - It works 3 - this problem occurs on 2 or 4 nodes 4 - It works 5 - I speak now with my system administrator, the udf is not visible to all of the compute nodes, only the master node view the partition...There's a cluster configuration problem.

Thanks to all!

Andrea

julian April 5, 2007 09:18

Re: Fluent UDF on parallel computing
 
If you have a managed cluster, I am assuming hat you have some queueing software to control the number of jobs on the machines. Some clusters are set up so that the queue master program will copy the files around for you and others so that you have to write a script to do it yourself. Other clusters are set up so that you will need to copy all of your files to a `scratch' area to use the parallel capability. I'm just guessign now, like you say, best to speak to your sys-admin.

Julian


Andrea April 5, 2007 12:26

Re: Fluent UDF on parallel computing
 
Thanks Julian, I regard you for the suggests. Now my sys-admin is busy... I'll inform you about the problem.

Andrea

Josyula July 8, 2011 07:06

Regarding running Fluent case with UDF in a parallel cluster
 
Andrea/Julian,

I am trying to run a FLUENT case with UDF in a parallel cluster. But I'm getting an error that the UDF can't be found when I submit the job in the cluster. Eventually the job gets stopped.

Could you please tell me how you managed to run the UDF in the Cluster. That is, what are the changed required to be made in the Journal file?

How do you specify the path for the Fluent to read the UDF from the folder in which the UDF is stored?

Thank you.

Quote:

Originally Posted by Andrea
;140670
Thanks Julian, I regard you for the suggests. Now my sys-admin is busy... I'll inform you about the problem.

Andrea


Kanarya May 28, 2013 13:18

running in parallel mass_trasfer udf
 
Hi

I have problem to run in parallel this code?It is simple C_UDMI which is calculated before:
DEFINE_MASS_TRANSFER(water1,c,t,from_index, from_species_index, to_index, to_species_index)
{
#if !RP_HOST

return(C_UDMI(c,t,10));

#endif

}

in serial it is ok but parallel giving me following error:
warning C4716: 'water1' : must return a value.

is there anyone had expericed before?

Thanks in advance!!!

prash_iaf November 26, 2013 10:07

SIX DOF UDF in parallel
 
Dear friends

Please help me to convert this serial UDF to paralllel UDF computing

#include "udf.h"

DEFINE_SDOF_PROPERTIES(delta_missile, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 907.185;
prop[SDOF_IXX] = 27.116;
prop[SDOF_IYY] = 488.094;
prop[SDOF_IZZ] = 488.094;

/* add injector forces, moments */
{
register real dfront = fabs (DT_CG (dt)[2] -
(0.179832*DT_THETA (dt)[1]));
register real dback = fabs (DT_CG (dt)[2] +
(0.329184*DT_THETA (dt)[1]));

if (dfront <= 0.100584)
{
prop[SDOF_LOAD_F_Z] = 10676.0;
prop[SDOF_LOAD_M_Y] = -1920.0;
}

if (dback <= 0.100584)
{
prop[SDOF_LOAD_F_Z] += 42703.0;
prop[SDOF_LOAD_M_Y] += 14057.0;
}
}

printf ("\ndelta_missile: updated 6DOF properties");
}

Kanarya November 26, 2013 10:16

Hi ,

Try this:
#include "udf.h"

DEFINE_SDOF_PROPERTIES(delta_missile, prop, dt, time, dtime)
{
#if !RP_HOST
prop[SDOF_MASS] = 907.185;
prop[SDOF_IXX] = 27.116;
prop[SDOF_IYY] = 488.094;
prop[SDOF_IZZ] = 488.094;

/* add injector forces, moments */
{
register real dfront = fabs (DT_CG (dt)[2] -
(0.179832*DT_THETA (dt)[1]));
register real dback = fabs (DT_CG (dt)[2] +
(0.329184*DT_THETA (dt)[1]));

if (dfront <= 0.100584)
{
prop[SDOF_LOAD_F_Z] = 10676.0;
prop[SDOF_LOAD_M_Y] = -1920.0;
}

if (dback <= 0.100584)
{
prop[SDOF_LOAD_F_Z] += 42703.0;
prop[SDOF_LOAD_M_Y] += 14057.0;
}
}

printf ("\ndelta_missile: updated 6DOF properties");
#endif
}
best!


Quote:

Originally Posted by prash_iaf (Post 463570)
Dear friends

Please help me to convert this serial UDF to paralllel UDF computing

#include "udf.h"

DEFINE_SDOF_PROPERTIES(delta_missile, prop, dt, time, dtime)
{
prop[SDOF_MASS] = 907.185;
prop[SDOF_IXX] = 27.116;
prop[SDOF_IYY] = 488.094;
prop[SDOF_IZZ] = 488.094;

/* add injector forces, moments */
{
register real dfront = fabs (DT_CG (dt)[2] -
(0.179832*DT_THETA (dt)[1]));
register real dback = fabs (DT_CG (dt)[2] +
(0.329184*DT_THETA (dt)[1]));

if (dfront <= 0.100584)
{
prop[SDOF_LOAD_F_Z] = 10676.0;
prop[SDOF_LOAD_M_Y] = -1920.0;
}

if (dback <= 0.100584)
{
prop[SDOF_LOAD_F_Z] += 42703.0;
prop[SDOF_LOAD_M_Y] += 14057.0;
}
}

printf ("\ndelta_missile: updated 6DOF properties");
}


prash_iaf December 8, 2013 01:12

Parallel UDF
 
Quote:

Originally Posted by Kanarya (Post 463575)
Hi ,

Try this:
#include "udf.h"

DEFINE_SDOF_PROPERTIES(delta_missile, prop, dt, time, dtime)
{
#if !RP_HOST
prop[SDOF_MASS] = 907.185;
prop[SDOF_IXX] = 27.116;
prop[SDOF_IYY] = 488.094;
prop[SDOF_IZZ] = 488.094;

/* add injector forces, moments */
{
register real dfront = fabs (DT_CG (dt)[2] -
(0.179832*DT_THETA (dt)[1]));
register real dback = fabs (DT_CG (dt)[2] +
(0.329184*DT_THETA (dt)[1]));

if (dfront <= 0.100584)
{
prop[SDOF_LOAD_F_Z] = 10676.0;
prop[SDOF_LOAD_M_Y] = -1920.0;
}

if (dback <= 0.100584)
{
prop[SDOF_LOAD_F_Z] += 42703.0;
prop[SDOF_LOAD_M_Y] += 14057.0;
}
}

printf ("\ndelta_missile: updated 6DOF properties");
#endif
}
best!

Thank you for the reply to my post on parallelising the UDF for 6DOF. However it has not resolved the problem as the data of mass is not available during calculation and stops with a error zero mass!!. Is the loop !RP host excluding the mass interia data from calculationss?? Pls help resolve!!

Kanarya December 8, 2013 06:42

hi,

try to use global variable macros!

Best!
kanarya
Quote:

Originally Posted by prash_iaf (Post 465295)
Thank you for the reply to my post on parallelising the UDF for 6DOF. However it has not resolved the problem as the data of mass is not available during calculation and stops with a error zero mass!!. Is the loop !RP host excluding the mass interia data from calculationss?? Pls help resolve!!



All times are GMT -4. The time now is 19:43.