Dymola 2018 performance on Linux (xubuntu) - modelica

The issue that I experience is that when running simulations (same IBPSA/AixLib-based models) on Linux I get a significant performance drop (simulation time is about doubled) in comparison to a Windows 8 machine. Below you find the individual specs of the two machines. In both cases I use Cvode solver with equal settings. Compilation is done with VC14.0 (Win) or GCC (Xubuntu).
Is this issue familiar to someone or can anyone help what the reason might be?
Win 8:
Intel Xeon #2.9GHz (6 logic processors)
32 GB RAM
64-Bit
Xubuntu 16.04 VM:
Intel Xeon #3.7GHz (24 logic processors)
64 GB RAM
64-Bit
Thanks!

In addition to the checklist in the comments, also consider enabling hardware virtualization support if not already done.
In general gcc tends to produce slower code than Visual Studio. In order to turn on optimization one could try adding the following line:
CFLAGS=$CFLAGS" -02"
at the top of insert/dsbuild.sh.
The reason for not having it turned on by default is to avoid lenghty compilations and bloated binaries. For industrial sized models these are actual issues.

Related

Operating system's performance

Will there be a difference in the performance of a 32 bit operating system running on 64 bit processor and a 32 bit operating system running on 32 bit processor?
Just realized this didn't specify x86. I don't know if any ARMv8 CPUs are slower in ARMv7 mode than a similar-cost ARMv7 CPU.
You can't really compare apples-to-apples, because there's no such thing as a 64-bit CPU that's exactly the same as a 32-bit CPU except for supporting 64-bit mode. There are always other microarchitectural changes, too. (Like from Pentium M to Core2 on Intel.)
If we're talking about x86, then no. A 64-bit capable x86 CPU is no worse at running 32-bit code. This is called "legacy mode", as opposed to "compat mode" (32-bit user-space under 64-bit OS), but they perform the same.
In fact, the only CPUs that can't run in x86-64 mode these days are old, slow, or both. e.g. using a 32-bit-only CPU means you're running on Pentium4, Pentium-M, or an old Atom! Or Athlon-XP. Or an embedded x86 like Geode.
This is the same reason that 32-bit software is still widely used under Windows (although usually under a 64-bit OS).
The option you didn't mention is the high-performance one: 64-bit OS on a 64-bit CPU, even if you want to run 32-bit user-space code.
Especially if you have more than 1 or 2GB of RAM, it's likely that your system will run faster with a 64-bit kernel. 32-bit kernels can use more RAM, but it's ugly and not as fast as if the kernel can have all physical memory mapped into kernel-space virtual memory. See Linus Torvald's comments on PAE (Physical-Address Extensions)
See the x86 tag wiki for more about how x86 CPUs perform, and how to optimize for them.
Yes because you wouldn't make full use of all those 64bits. If you have a 32bits OS than you will only use that and not 64. However, if you were to have 64bits OS than it will make full use of those bits.
Also, please have a look at:
https://www.howtogeek.com/194119/why-are-most-programs-still-32-bit-on-a-64-bit-version-of-windows/
and
http://www.osnews.com/story/5768

Eclipse is extremely slow on Fedora 24

I am running a Fedora 24 OS (with GNOME 3) and I just installed the eclipse CDT package from the Fedora repositories (Eclipse CDT Neon.1), and it turned out to be extremely slow, but only when writing code or scrolling, the rest of the UI works perfectly and really quickly.
I have done some research about the topic and seemingly this problem is usually related to the GTK backend, and is commonly solved by running eclipse under GTK2 instead of GTK3. However, this has not helped me at all. The options I have tried are:
export SWT_GTK3=0
And
eclipse --launcher.GTK_version 2 (also tried in eclipse.ini)
These two options effectively switch to GTK2, which is noticeable because the graphical appearance changes.
I tried also older versions of Eclipse (Juno, Kepler and Luna) and the problem still exists, probably even worse. I have increased the memory size for the JVM to 3GB and the problem remains intact.
The underlying hardware is a 6 core Intel Xeon (12 virtual cores with Hyperthreading) and 32 GB of RAM, so I assume this should not represent a problem.
I also noticed that while scrolling or writing, one of my cores goes to 70%-100% utilization, which explains the lag, but I don't know how to solve.
Is there any other option I can try?

Enable AMD-virtualization

Before 3 weeks maybe, i faced a problem in launching WP emulator. After troubleshooting, i found that visualization option in my Laptop is not running successfully.
Laptop spec. (Acer 4253):
CPU: AMD E-350, Zacate 40nm Technology
OS: Operating System, Windows 10 Pro 64-bit
RAM: 4.00GB DDR3 # 532MHz
I have downloaded Speccy to check visualization info, since nothing relate to visualization is appear in bios settings, and i found that "Hyper-threading" is not supported!, any help?
Hyperthreading is only an Intel technology, AMD doesn't have hperthreading on any of it's processors evem the AMD FX generation.
Hyper-threading (officially called Hyper-Threading Technology or HT Technology, and abbreviated as HTT or HT) is Intel's proprietary simultaneous multithreading (SMT) implementation used to improve parallelization of computations.
For Virtualizaton, you have written it ok in the title, but you wrote visualization wrong every time... processors dont have visualization.:)
Everything on your WP configuration looks ok, you shouldn't worry what the amd parameters are because they are just fine... you have to just configure and run the program same as for any amd processor, which is probably the same with intel, programs have almost zero configuration differences between the two.

What do x86_64, i386, ia64 and other such jargons stand for?

I frequently encounter these terms and am confused about them. Are they specific to the Processor, or the Operating System, or both?
I have Ubuntu 12.04 running on Intel i7 machine. So which one of them would apply for my case?
They are processor instruction set names:
i386 is the name of the 32-bit instruction set first implemented by Intel in the 386 processor. It became dominant thanks to dirt-cheap PC hardware.
x86-64 is the name of the AMD extension added to i386 to make it capable of executing 64-bit code. This is the one you have. It is highly compatible with i386 and will execute a 32-bit program as fast as an i386 processor.
ia64 is the name of the instruction set used in Itanium processors. The other 64-bit architecture that nobody uses anymore.
Those are cpu instruction sets. Apps installers are compiled to some subset of them. Here most difference is between 32bit(i386) and 64bits(x86_64 and ia64). You can not run app for 64bit on 32bit cpu but in reverse usually yes.
x86_64 (AMD64) cpu is most common instruction set as comes to 64bit cpu on desktop computer. It is from AMD which was few years earlier with their cpu which worked fine with x86(32-bits) instructions also.
ia64 (itanium) is from intel. Itanium works fast only with 64bits and is still used in industry.
Intel now uses x86_64 instructions from AMD due to its popularity in industry.
Sometimes key "amd" at installer package name is present and it is what you need for 64bit intel cpu.
i386 is quite old (Pentium times, pentium III has i686). To determine 32bits architecture(on desktop computers) also is used term x86 (aliases: IA-32, x86-32). There are also other architectures 32/64bit like ARM from smartphones.
Other cpu instruction sets can make compression, video coding/decoding, virtualization, random generators, security etc. to be faster and better. Windows 8 require PAE, NX, SSE2 (some of those are not present in ARM cpus so you have other version of Windows 8RT for them).
In hardware, x86_64 is a type of processor that can run both 32bit and 64bit applications just fine where ia64 runs 32bit applications SLOWER than any other CPU, as it is meant for 64bit only applications.
Moving on to the software side. I'm not sure about Ubuntu, but generally a 64bit Windows OS will allow you to use more than 3.3GBs of memory as well as the advantage of using your 64bit hardware to address memory better and have bigger than 2GB processes running. Usually on a 32bit, once an application reaches the 2GB limit, you'll get a OutOfMemory error from your application.
For a full article, refer to: http://en.wikipedia.org/wiki/64-bit_computing

Should I use Eclipse 32bits or 64bits on my new machine?

This might be a dumb/naive question, and if it is please excuse me :)
I have a brand new machine with the following specs:
Inter Core i7 2600#3.4GHz
RAM 8 GB
Windows 7
This machine has a 64 bits architecture.
On my previous machine, I used to install 32 bits versions of Eclipse and run it using a 32 bits JRE, and my current Eclipse setup works perfectly on the new machine.
I tried to install a 64bits version of Eclipse, and run it with a 64 bits JRE, and I am wondering if there are any compelling reasons to switch to this kind of setup or stick to my existing install. I guess that I would have to reinstall all the plugins, and maybe find that some of them are not compatible with the 64 bits version of Eclipse.
So far, the 64 bits version seems to need quite some more RAM than the 32 bits version, which is something that I expected, but nothing seems to have improved.
Thanks for your advice!
In general I use 64-bit Eclipse without problem, but there can be issues around plug-ins such as:
Adobe Flash Builder only works with 32-bit
The Subversion plug-in Subclipse needs a native 64-bit version of Subversion installed separately
There may be more but those are the ones I've encountered in the past.
Moving to 64-bit gives you access to more addressable memory but it won't speed anything up, in fact it might reduce performance in some cases (but nothing I see as significant to what I do).
Well the only thing that will improve is that you are able to use the advantages of 64bit. Other then that I'm not aware of any improvement.
For example what's better in 64bit is that if you have a very large project set you would be able to handle it more comfortably. For more information on 64-bit please look here
If you want to be on the edge of technology your choice would of course be the 64bit setup.
About the ram, this is expected because some of the Datatyps now use 64bit and are therefore larger to store in memory.
For most plugins you will get a 64bit version or alternative and so far for what I've used it it always worked.