Intel Fortran Compiler License - fortran

I remember once upon a time I paid for Intel compilers and tools and it was pretty worth it for the application at hand. Now, I am building an object oriented database engine and am considering using a Fortran back end to compile a simple scripting language on the fly. This seems pretty straightfoward, but what's the licensing like these days? Is this open source?

All the Intel oneAPI Toolkits are open source, you can download them for free. Please find the below links for downloading the latest Intel Base and HPC Toolkits.
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html
https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
To access older releases you need a version that includes Intel Priority Support, the free versions do not include this. Here is a link to the online store to get a commercially supported version. Please find the below link:
https://softwarestore.intel.com/
Thanks,
Varsha

Related

Is the Intel® IPP Asynchronous C/C++ library included in the standard IPP library?

I have queried directly with Intel which is still pending.
Basically I have searched the internet quite rigorously but have been unable to determine if the asynchronous library described here is available as part of the library downloaded from here.
Note: I have actually installed Student version of Intel Parallel Studio XE Cluster Edition for windows, which as far as I can tell includes the ipp library linked above.
I intend to use the library as part of OpenCV-3.0, which I have successfully built without ipp_a for the time being using cmake.
My end goal for now is to be able to run this tutorial successfully.
Intel responded, and it appears as though the asynchronous functionality is NOT included in ipp as of yet, which is a shame. Their response on the developer zone forum was as follows:
"The asynchronous library is preview library, and it is not available in IPP now.
The Preview releases were intended to solicit community feedback about the features, and it may change based on community feedback. At this time, there are no features in the IPP preview packages are included in the IPP, and the prior packages are no longer available.
While that package is not there, IPP offers the IPPCV package, which provides the CPU optimization for some OpenCV functions:
please check the new OpenCV 3.0 documentation on this:
http://opencv.org/opencv-3-0.html
a subset of Intel IPP (IPPCV) is given to us and our users free of charge, free of licensing fees, for commercial and non-commerical use. It’s used by default in x86 and x64 builds on Windows, Linux and Mac."
Link to the forum here: https://software.intel.com/en-us/forums/intel-integrated-performance-primitives/topic/594325#comment-1841423

OpenCL development on Intel CPU/GPU under Linux

I have an intel i7 haswell cpu, and I would like to start exploring OpenCL development. In particular, I am interested to run OpenCL code on the integrated GPU.
Unfortunately, by now, I was not able to find any SDK on Intel's site..
May you provide some links, together with a summary of the current status of OpenCL tools for the Linux platform and Intel hardware?
I think this would be useful to many other people..
Thanks a lot!
Intel does not provide free support for OpenCL on their iGPUs under Linux - you have to buy the Intel Media Server Studio, minimum $499. On Windows, you can download a free driver to get OpenCL capability for the iGPU: https://software.intel.com/en-us/articles/opencl-drivers#philinux.
Note that you can use any OpenCL SDK you want - it doesn't have to be Intel. The SDK is only useful for building your program. For running an OpenCL program, you need an appropriate runtime (driver) from the manufacturer. The AMD SDK will give you access to the CPU as an OpenCL device, but not the iGPU.
There is Open Source OpenCL implementation for Intel GPUs on Linux called Beignet, maintained by bunch of guys from Intel.
Sadly, couldn't personally try and check if Your's GPU is properly supported, but on their wiki they states:
Supported Targets
4th Generation Intel Core Processors "Haswell", need kernel patch currently, see the "Known Issues" section.
Beignet: self-test failed" and almost all unit tests fail. Linux 3.15 and 3.16 (commits f0a346b to c9224fa) enable the register whitelist by default but miss some registers needed for Beignet.
This can be fixed by upgrading Linux, or by disabling the whitelist:
# echo 0 > /sys/module/i915/parameters/enable_cmd_parser
On Haswell hardware, Beignet 1.0.1 to 1.0.3 also required the above workaround on later Linux versions, but this should not be required in current (after 83f8739) git master.
So, it's worth a shoot. Btw, it worked well on my 3rd generation HD4000.
Also, toolchain and driver in question includes bunch of GPU-support test cases.
For anyone who comes across this question as I did, the existing answers have some out-of-date information; Intel now offers free drivers for Linux on the site posted above: https://software.intel.com/en-us/articles/opencl-drivers#philinux
The drivers themselves are only supported on 5th, 6th and 7th gen Core processors (and a bunch of other Celerons and Xeons, see link), with earlier processors such as 4th gen still needing the Media Server Studio.
However, they now offer a Linux Community version of Media Server Studio which is free to download.
They also have a Driver Support Matrix for Intel Media SDK and OpenCL which has some useful information about compatibility: https://software.intel.com/en-us/articles/driver-support-matrix-for-media-sdk-and-opencl
You may check intel open source Beignet OpenCL library: http://arrayfire.com/opencl-on-intel-hd-iris-graphics-on-linux/
For me (ubuntu 15.10 + Intel i5 4th generation GPU) it works quite well.
P.S.
Also I must say that I managed to download "media server" for linux a couple of months ago (but didn't used it yet). So you may check it also.

ARM STM32 need compatible compiler [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I am relatively new to programming with embedded hardware although not new to programming. I purchased the STM32F407VGT6 Multimedia Board, TFT LCD, SD, Accelerometer, USB from http://microcontrollershop.com/product_info.php?products_id=5058&osCsid=9jkr9kor7d76qgvu76knsr0hp2. I thought I would be able to use the microC for ARM compiler but misread the demo version as 80 kb not actual amount of 8kb. To purchase this cost 300 and I really dont have the money for it. I have tried to find a different compiler that is compatible but so far have been unable to.
I did find people mentioning that Code Sourcery lite might work although no one mentioned this specific board but the free version does not come already integrated with eclipse and I was unable to successfully integrate it.
I am really at a loss of what to do since I would rather not have to buy a whole new controller, and screen just to continue my project and I don't want to pay to purchase this compiler
If anyone knows a free IDE (even if its free for students only) that is compatible with this board it would greatly be appreciated.
A compiler is required only to support the instruction set of the processor. Board specific support itself is not the responsibility of the compiler. Moreover in the case of ARM based devices, only the ARM core is the responsibility of the compiler; support for peripherals, and in particular the PLL clocking scheme for your part are also not the responsibility of the compiler. So the fact that your board is not mentioned in the documentation is largely irrelevant.
Some tool-chains and particularly IDE's from the likes of Keil (an ARM subsidiary) and IAR provide a huge amount of chip and board support. Both these companies provide demo versions, Keil's I believe is good for at least 32K, and the IDE also supports free GNU tools such as Code Sourcery, which has no restrictions on code size.
However in many cases and in particular the case of the STM32, a lot of the board support you need is available from the chip vendor. ST provide a standard peripheral library and ARM CMSIS (ARM's standardised Cortex-M support API), plus many other libraries besides. Keil actually ships ST's Standard Peripheral Library and CMSIS with its toolchain, but getting it form ST ensures the latest version. The libraries and manuals can be found ion the Design Support tab here. The board page linked in your question has a link to download example code to support the off-chip board peripherals.
So the upshot is that Code Sourcery or other ARM GCC distribution will work fine, but you may need to build your complete development environment from parts such as chip or board vendor supplied libraries plus an IDE/debugger environment such as Eclipse or uVision.
With respect to using Eclipse, there is an article here describing how to do it for the STM32 Discovery board; most of which is applicable to your board at least for building if not for debugging/flash programming - the Discovery board has a built-in STLink JTAG debugger.
Update June 2021
A lot of the above is out-of date ST have largely deprecated support for the SPL and do not even provide it for newer series such as STM32F7, replacing it with he STM32Cube framework.
Importantly however ST now provide a free IDE with a toolchain and CubeMX integrated: https://www.st.com/en/development-tools/stm32cubeide.html
Have you considered Yagarto?
http://www.yagarto.de/
It work on Windows and MacOS.
Or GNU ARM:
http://www.gnuarm.com/
Works primary on Linux and MacOS (also Windows through Cygwin).
Add code sourcery lite to your path, so you can use it from command line, then install Eclipse with CDT. When installed create new cross compile executable project. Enter arm-none-eabi (verify that this is prefix of your toolchain) and you should be able to compile and debug your project.

Switching from DOS to Linux on embedded system

I was recently tasked with performing a feasibility study based around switching from using DOS to Linux for use as an OS to run our industrial control software (developed internally). In a nutshell I have been restricted to using Ubuntu 8.04 (with a vendor supplied kernel upgrade providing drivers for the hardware on the board). As this is no longer supported I am unable to update or install software meaning that I am stuck using gcc version 4.2. I want to be able to use C++ and preferably boost libraries but currently this seems like I will not be able to do so.
Basically I am asking how do companies/professionals go about using Linux as a development environment? Is what I described above a common occurrence? Do you simply pick a version and a compiler and stick with it throughout the product lifetime to ensure that the development environment doesn't change too much or can you freely upgrade the kernel, compiler etc. as you go along? Is it common to be constrained by what a particular vendor can provide. Would anyone be prepared to give their opinion as to whether ubuntu 8.04 is a suitable choice of OS for development of industrial control software?
I am not a linux expert at all, but my research and experimentation so far is leading me to conclusion that I should abandon the linux approach and use DOS. Our company has no linux knowledge and is very small and for personal career reasons I have no interest in learning redundant technology like DOS.
I realise this is not exactly a yes/no type question but any responses will be gratefully received.
GCC 4.2 has no C++11 support but the C++03 support should be good and you should be able to find a version of Boost that can deal with that quite easily.
Ultimately, Linux has many upsides you won't find in DOS- for example, no segmentation, virtual memory, and such things that will make it easier and faster to develop software, not to mention additional libraries you might need, as absolutely nobody whatsoever will support DOS today.
With linux-based systems there's not much reason to stick with fixed OS+toolchain version, because backwards compatibility is a very serious issue in Unix-world. Sometimes it is good to target certain fixed system, but frankly these are rather rare, and even then the development can be done on up-to-date systems as long as testing is done on the target macine/platform.
Basically you could just upgrade to for example Ubuntu 12.04 LTS(long term support) for development and stick with it, it is very unlikely that there would be any sorts of uncompatibility problems on the target platform/machine.
Libraries and such tend to change between Linux distros, new versions of linux distros, and other *nix OSes.
I once worked on a C++ application that had to run on both Windows and RHEL. I was the 'Linux guy' on the team, so I got to deal with coaxing all the open-source linux libraries we were using to build and work on Windows (using cygwin), and getting the latest changes made by the devs working on Windows to work on Linux.
Midway through development, we upgraded to a newer version of RHEL. It was not a fun experience. Library versions had changed, some had been removed in favor of other 'equivalent' libs, etc. Shaking out all of the problems caused by changing gcc versions took a little while too (granted, the newer gcc version was a bit less forgiving and exposed some stuff in our code that probably wasn't quite right anyway).
A couple of days before a big demo, management informed us that the app needed to run on Solaris as well. That was not a trivial task -- Solaris is NOT Linux. They hinted about wanting it to run on IRIX at one point. Glad that didn't happen.
I would recommend that you pick a specific version of a Linux distro, gcc, etc. and stick with it throughout development. Upgrading that stuff can happen later, when the software is in maintenance. RHEL offers long-term support, at a cost. You might also consider the newly released Ubuntu 12.04 LTS

What tools do you use to profile (native)C++ on Windows?

How do Window's programmers profile their native C++ code?
On Unix/Linux you have gprof [thanks Evan] & valgrind (I personally used this one, although it's not a real profiler), and recently I'm on Mac and Solaris, which means I moved to dTrace. Now when I've had the need to profile on Windows in the past, like at my previous job, I used Intel's vtune, which is great, however it's commercial, and I don't have a license for private use, so I'm left wondering what's the standard (free is better) tool windows programmers commonly use?
Thanks in advance
You should give Xperf a try - it's a new system wide performance tool that can drill down to a particular application and what exactly it's doing inside itself as well as what's it's asking of the OS.
It's freely available on the Windows SDK for Windows Server 2008 and .NET Framework 3.5 ISO:
Install the SDK by downloading the ISO image, or using the Web based
installer.
Find the xperf MSI in the SDK's "bin" directory. It will be named
xperf_x86.msi, xperf_x64.msi, or
xperf_ia64.msi, depending on the
architecture for which you install the
SDK.
You can then install the xperf tools from the MSI directly, or copy
the xperf MSI file to another location
and install it from there. For
example, you could keep the MSI files
on a USB key.
Source: Pigs Can Fly blog on MSDN.com
Just verified that the xperf msi will not install except on windows Vista or Windows 2007.
-Adam
I got AMD Code Analyst. It's free, and you don't need an AMD CPU ;)
It's a little basic compared to something like Intel's VTune, but the price is right.
This link talks about Linux, but I use the same technique in MSVC and in C#.