- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have installed Windows 11, Visual Studio 2019 Community and Intel oneAPI 2021 Base and HPC Toolkit. When I run my FORTRAN program on a different PC with Windows 10, I get different results. I have tried not only the same compiler, but the same executable file as well. Is there anything I can do to solve this issue?
Best regards,
Dr. Elias N. Eliopoulos
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A few clues would be helpful.
HOw long will it take to run, it is counting up at the moment and is to 350, about 1 unit per second and what is the output I am looking for
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On my laptop, the output is 4174731.5 cycles (units) and takes approximately 24 hours to run with 50 cycles/sec. Don't you run the release version?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No,
the following is humour after reading the travesty of the poor Greek PM
I will run the release version of a program when the BM returns the Greek marbles. The Brits are a bit __________________
Sorry, I always run debug, bad habit.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
These can be extremely difficult issues to diagnose. Here are some other approaches that might isolate the issue.
Try other systems
You are getting different results on two systems. Try a third system "between" these. Is it the version of Windows? Is it the CPU type? Why are they different? Divide-and-conquer your way to success.
Investigate shared libraries
Your executable will called shared libraries. Which ones? Some of these will be installed on the system so you will be running different code on the two machines. I have experienced errors in system math libraries that were isolated by running on a couple of dozen "identical" systems.
Try static linking to reduce the number of shared libraries. Where possible, use the same dlls across systems - perhaps by placing them in the same folder as the execuable. Be careful here as replacing system DLLs can lead to disaster. Well worth using a Virtual Machine to avoid borking your system.
Try a different version of LAPACK/BLAS
Build your own LAPACK and BLAS using the Fortran reference implementation. You don't need that many files for your problem, and you can download the routine and dependencies from netlib. Then you can:
- statically link it to reduce differences
- use all the compiler flags in Steve Lionel's presentation to try for more reproducible results
- then relax the compiler flags file by file to see what breaks
Hopefully this will give similar results to one of your existing cases, but it is just as likely to give other results.
Run the LAPACK testuite
Run the LAPACK testsuite applicable to your solver with the LAPACK library you are using. If you see failures then you have a freely-available, self-contained test case.
Instrument the code to confirm each matrix solution is plausible
Add a few line of code to confirm the matrix solution satisfies the inputs. Getting the right measure can be a problem, but even something roughly correct might point to a problem.
Calculate the condition number of your matrices and report issues. You may have an ill-conditioned problem that is sensitive to numerical perturbation.
Use the LAPACK expert solvers
LAPACK provides expert interfaces that return more information
DGESVX also returns error bounds on the solution and a condition estimate of the input matrix. I use this routinely and it occasionally detects effectively singular matrices due to (my) bugs. That is input matrices that are numerically but not exactly singular. Very useful. Not too expensive as the factorization is most of the work. I often turn it off for release builds.
DGESVXX tries harder to return a more accurate solution and error bounds on the solution. I haven't used this routine but have used iterative refinement to polish a solution. The results were certainly more consistent across different platforms. There are lots of options, and they look daunting, but this is a systematic way of finding issues in your code.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, I stopped debug and restarted in release, now it might work, I will let you know the result in about 19 hours, based on a rough count.
In debug it had done 40000 in 18 hours.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Further travails, Windows 11 updated last night and rebotted before your program finished. I started it again, maybe tomorrow.
But what is the output you need, the output file appears to be zvar.txt, but it is not in the folder so far.
I have had to learn Dutch to read these plans, so I am getting a few of the words stuck in my head.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The output file is created after the run is over and contains the last number of cycles printed, among others. zvar is just the file name. It means nothing.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am at 5.5 million loops, is there an upper limit to the loops? If so can you put something to tell us how close it is to finish.
This is the count of loops against time - interestingly parabolic
The running rate of the loops, note that it is fourth order as the best fit, this is just plumb weird.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Unfortunately, there isn't a limit to the loops nor an indication that it approaches the end. Actually, the number of loops is much higher. It is 40 times the number of cycles. It will run forever, if the strain limit is not reached.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I presume this is some sort of damage model and you are measuring the evolution of damage.
If it is going to be useful, you really need to give more output than the cycle number on the screen and a log file as you go so we can look at the results would help. 24 hours is a long time to not know if you are achieving something.
Also how do you do calibration?
Your have a lot of stuff on Researchgate that has been picked up automatically, you should fill in the blanks, some people use that site a lot.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
here is the output results. The cycles 5.6 million.
This is a Dell Precision core i7, with a RTX graphics card and a samsumg ssd, running Windows 11 preview, VS 2022 preview and the latest Intel oneapi.
I hope this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In my experience, it is impossible to have an indication, as at the end the strain increases abruptly. The output of my Dell Vostro 5620 laptop with core i7 and Windows 11 Pro is 4.2 million cycles. That's the problem in the first place: different results. Should I give you more output?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No, I am not really interested in the output, I am interested in the raw equation and the solution method.
You are in the right place, there are about 6 people here who can solve a difficult challenge such as this, I am not one of them, but I have a long interest in damage mechanics and your overall direction seems interesting, so if we can tease out the real thing then you will probably get one of the gurus to chime in and explain what is happening, why and if it is normal or how to fix it. But we have to explain it to them in raw math terms, and then point to the Fortran problem that is no more than 50 lines long.
Fortran is just the best tool to solve these problems, and for better or worse this is the best solving site in the world. Weird, but the world is what the world is.
Think of it like Moses, God sent you up the mountain to collect the commandments carved in stone, you could carry one and left the other 199. So give us the one.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It would be very difficult to provide raw math equations because they are simply too many. I wish there was an easier way to find out what is going on. Thank you for your willingness to help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have created my ResearchGate profile.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Spam, Spam, Spam, Spam
Spam, Spam, Spam, Spam
Spam, Spam, (Lovely Spam, Wonderful Spam!) Spam, Spam
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bit harsh, the academic is trying to make a very spaghetti code of Fortran work, I made the comment about research gate to help the human bean build an academic career, anyone in academe who use Fortran deserves our support.
I was sent copy of the code, it is mind numbingly difficult to follow. There are assignment of reals to integers in if statements, etc..
It needs a good rewrite. It is 5000 lines of one program and two small subroutines of about 10 lines each.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@JohnNichols, this is what really happened early today that prompted Andrew to report "spam".
A newly registered "member" made a first post that was clearly spam. I used the three dots on the top right of the post to alert the forum administrator about the spam. A little while later, Andrew posted his assessment. The spam post was still present.
Another while later, the administrator (presumably) deleted the spam post, causing the identity of Andrew's target to become a mystery. Andrew's criticism was not at all directed to Eliopoulos.
On an unrelated point, I noticed that you have again mentioned "human bean", as you had done in other posts earlier. I am not aware of any persons who may properly be classified as belonging to the Fabaceae family. I presume that you meant "human being".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The spammer posted at 02:31 AM EST.
I marked it as spam at 5:55am EST, which removed it from public view.
Doc (not an Intel employee or contractor)
[Maybe Windows 12 will be better]

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page