Any suggestions how to do this?Īlso, I have to copy my debug code to a specific folder, for the optical analysis program to access it, so the code that has to be debugged will not be in the /debug/ folder created and populated by the compiler. However, in my VS2012, I cannot see/find how to specify that debugging has to start by executing the opticalĪnalysis program rather than my own.
Intel visual fortran compiler 11.1.060 windows#
The back and forth DDE communication part works OK - when I start the optical analysis program, it talks to my code OK (diagnostic message boxes put up by my code confirms this), but the process now falls over when my code tries to open a modal Windows dialog, so I want to debug my code. I now have to cope with the optical analysis program now running on a 64-bit platform. I got this working fine when I was running on a 32-bit platform. I have written code that interacts with an optical analysis program via DDE. Print *,'Result:',GOps,'G exponential functions/s' GOps=1e-9*NOuter*NExps/(TimeEnd-TimeBegin) !$OMP PARALLEL SHARED(ExpIn,NOuter,NExps) PRIVATE(I,J,ExpOut) NUM_THREADS(NumThreads) Print *,'Running on Xeon Phi device ',DevNo,'using',NumThreads,'threads' !Somehow DevNo is not correct when we get here. !$OMP TARGET DATA DEVICE(DEVNO) MAP(to:NExps,DevNo,ExpIn(1:NExps),NumThreads) Print *,'Entered OMP parallel region for device', DevNo !$OMP PARALLEL NUM_THREADS(NoDevices) DEFAULT(SHARED) PRIVATE(DevNo) !Outer OMP parallel region - performing the same calculation on multiple phis in parallel !Now we do the actual benchmark calculation of exp's in parallel using openMP distributed over multiple phis !First, fill a vector with random values to calculate exp for Integer :: NumThreads,NInner,NOuter,i,j,DevNo,PhiNo,NoDevices=1,NExps=165189!NExps=1651898 !DEC$ATTRIBUTES ALIGN: 64 :: ExpIn,ExpOut Real*8,allocatable,Dimension(:) :: ExpIn,ExpOut Is this not how you are supposed to do multi device offloading with openMP 4.0? I use the latest version of parallel studio XE on Windows. It seems to me that the code attempts to do both offloads to the same device, which sometimes result in half the performance and sometimes it crashes. In the version below NoDevices=1 and everything seems to work regardless of this issue, but if you instead set NoDevices=2 it doesn't.
The DevNo value written out in the print statement appear to be a random uninitialized value. In the code below, the strange thing is that DevNo never seem to make it correctly to the device. When inside the target section the code is further parallelized using openMP directives. I first create an OpenMP thread for each Phi device and then make target sectiosn inside each of these threads. Basically, in the code below I just want to measure how many exponential functions the Phi's can calculate pr. Thank you very much for your kindly attention.I recently got a machine with 2xXeon Phi and I am making some simple tests to better understand the features that I will need for utilizing them in our production code. The problem come when I apply for Twisted 2D-Beam, Feap 8.3 give wrong result compare to feap 7.1.is there anyone has solution for problem above? Nevertheless Feap 7.1 never show the statement above. >Element 0 Reverse numbers to fix negative jacobian >Element 0 has zero or negative jacobian at nodes: In migrating from feap 7.1 to Feap 8.3, I just change the code in definition of material (Inpt2d become Inmate) and loading intensity (d10 become d8).įor case Parabolic-Hyperbolic, Spherical Dome, Cylindrical Shell Roof, Circular Cylindrical Shell, Both of Feap 7.1 and Feap 8.3 with the same user element (MITC24) definitely give the same result although in ouput file in Feap 8.3 is always show I am apply user element for shell element MITC24 in FEAP 7.1 and FEAP 8.3.