Home » Archive by category "Latest Technology" (Page 672)
Latest Technology, Motorola

Our 2-Day Holiday sale is almost here.

We’re eager to tell you more about our MotoMaker holiday price promotion (formerly known as Cyber Monday deal). This week we’ve put a lot of work into designing a simple sale that avoids rushed checkouts and frantic phone selection, so that you can take your time customizing your Moto X without racing against the clock.

Here’s how it will work:

At 12 pm EST Wednesday (12/4) and again at 12 pm EST next Monday (12/9), a customized Moto X will be $150 off the no-contract price. You’ll also get 30% off select accessories—including cases, headphones, and wireless products—when you use the promo code THANKS. We have bumped up the number of sale devices available. The promotion will last as long as quantities are available each day.

Here’s what you do:

  • Go to motorola.com/holiday2daysale and register for the promotion starting at noon EST on the two sale days. You will know right away if quantities are still available.
  • Once registered, you will be emailed a promo code within a few hours. This code is active for one week.
  • Go to Moto Maker and design your phone within the one week window (take your time and have fun!).
  • At checkout, enter your one-time promo code to receive $150 off the no-contract price in the shopping cart. (Your code only works once and for one phone.)
  • Submit your order to get rocking with your custom Moto X in time for the holidays. Moto Maker will provide an estimated delivery date while you design your product and again at checkout. You will also receive an email when we start assembling your device as well as when it ships.*
We’re excited to share this promotion with you and can’t wait for you to get your Moto X. Visit our FAQ page if you have more questions.

Follow our Twitter, G+, and Facebook for the latest on the sale.

*Shipping times are subject to parts availability.

Gaming Technology, Latest Technology

PlayStation Store Update

PS4 owners get a great new indie title: Tiny Brains! Also, the Vita game Escape Plan comes to PS4. Start your winter off right with Holiday Bundles from some of your favorite EA titles. Madden 25, NCAA 14, FIFA 14, Need For Speed Rivals and Battlefield 4 all have special Holiday Bundles priced at $49.99.
Latest Technology, NVIDIA

Fan Builds Giant GeForce GTX 690 Replica with 11,396 Lego Pieces

Peek_GeForce GTX 690 LEGO (11)Some fans build custom PC cases featuring our logo. Others have created virtual cities in the shape of the NVIDIA claw. And more than a few have gotten NVIDIA tattoos. A fan in China, however, has just hit our geek button, hard. Inspired by a crude model of a competing company’s graphics card made of… Read More
Intel, Latest Technology

Migrating Fortran projects to the Intel(r) Xeon Phi(tm) coprocessor

This article focuses on aspects of porting Fortran codes to the Intel® Xeon Phi™ coprocessor.  Most of the documentation for the coprocessor is C/C++ centric. Here the focus is on Fortran, which is still the dominant language for scientific programming and for which a large amount of legacy code exits.

Native versus offload programming models

The decision as to whether code should be run natively on the coprocessor or using the offload programming model is much the same for Fortran as it is for C/C++. Legacy Fortran code can generally be run natively on the coprocessor without modification. However, for the code to obtain peak performance, it must be both vectorized and multithreaded. 

If the code has large segments of single threaded code interspersed with multithreaded code, the best performance might be obtained by using the offload programming model. An exception to this is when using the offload model would require large arrays to be transferred repeatedly between the host and coprocessor. There is no equivalent to the Intel® Cilk™Plus offload for Fortran. In Intel CilkPlus, only those data elements whose values have changed will be transferred at the start and end of an offload section; in Fortran all data listed on the offload directive will be transferred at the start and end of an offload section unless the NOCOPY, IN or OUT keywords are used to restrict the transfer. Because of this, it is important to use the NOCOPY, IN and OUT options when possible rather than relying solely on the default behavior.


Choices for multithreading include OpenMP*, Pthreads* and MPI*, all of which are also available in C/C++. OpenMP is the most popular threading model in legacy Fortran codes, followed by MPI then Pthreads.

Starting with version 14.0 of the Intel Fortran compiler, coarrays and the DO CONCURRENT construct are also available. Prior to 14.0, coarrays were available on the Intel Xeon processor, but not on the Intel Xeon Phi coprocessor. There are, however, two restrictions at this time: 1) the host operating system must be Linux and 2) only the distributed memory model is available.

A coarray program can be run natively on the coprocessor, run with one or more coarray images on the host and others distributed across one or more coprocessors or run on the host with individual images offloading work to one or more coprocessor. The decision as to which model to use is similar to the decisions made when running an MPI code. Placing multiple coarray images on a single coprocessor increases memory requirements but cuts down on communication costs. As with MPI, OpenMP can be used within individual images of a coarray program to increase the number of threads running on the coprocessor in order to keep all of the cores busy.


When marking a function or subroutine or variable to be offloaded when that procedure is contained in a module, add the line:


immediately before the FUNCTION or SUBROUTINE STATEMENT.

In the procedure where the module is used, it is not necessary to add another attributes directive. The directive within the module is visible to the procedure which is using the module. While it is not necessary to do so, it can be to the programmer's advantage to place related functions which will be offloaded into a single module. Similarly, offload attributes for variables within the module should be place at the top of the data section for the module and it is not necessary to add the offload attribute statements for those variables to the procedure where that module is used.

It is also possible to mark a complete module as having the offload attribute. To do this, place the attribute declaration before the use statement in the procedure where the module is used. 

Common Blocks

When using common blocks in offloaded code, only those variables required by the offloaded sections must be marked with the offload attribute. If the common block is used in a number of offloaded procedures, the attributes directive along with the common block declaration can be placed in an include file used in each procedure. However, if different variables are used in each routine, individual attributes directives can be placed directly in each routine and tailored to the needs of that procedure. For a detailed example of using common blocks, see "leoF02_global_common.inc" and "leoF02_global.F90".

Common blocks on the coprocessor follow the Fortran standard. Therefore, even though all variables in a common block are not marked as having the offload attribute, space for the complete common block is allocated on the coprocessor. There is, however, no mapping from the variable address on the host to the variable address on the coprocessor for variables that do not have the offload attribute. If you try to use that variable name on the coprocessor, the compiler will warn you that the variable is not marked for offload. Although the compiler will allow you to use an equivalence statement to access that memory, this is a very dangerous thing to do. Values stored in this area will not be transferred back to the host at the end of the offload section. If you have been meaning to go through your code and remove the equivalence statements, this would be a good time to do so.


In C/C++, pointers cannot be passed into and out of offload sections. However, Fortran pointers are a different thing. Because Fortran pointers are always automatically dereference each time they are used, they can be specified in the data transfer section of an offload statement. The pointer will be dereferenced and conformable space will be allocated on the coprocessor. 

But what happens if your pointer points to a structure or an element of a derived type that contains a pointer? The behavior in this case is changing with the 14.0 release of the compiler.

Asynchronous data transfers

When doing an asynchronous data transfer, you will need to add SIGNAL and WAIT options to the offload directives where the data is referenced. The value of the variable you will wait on can be any unique integer value. In order to avoid needing to pass around the value for any specific tag, it is recommended that the value be set to the host's address for the first element of data that was passed. In Fortran the easiest way to do this is to use the LOC intrinsic. This is not part of the Fortran standard but is commonly available, including in the Intel® Fortran Compiler.

The following code does asynchronous data transfers using the locations of the my_data and my_result to signal. It allocates space on the coprocessor for my_data and my_result and begins transferring the contents of my_data over to the coprocessor. While that transfer is happening, you can continue to do some work on the host. When the code reaches the next offload directive that is waiting on that tag, it checks to be sure the initial transfer has completed. As soon as the transfer is completed, it offloads some work to the coprocessor. If you add a signal option to that offload directive, the host is free to do some more work while it waits for any output from the offload section to be transferred back from the coprocessor. When the host is done with its work, it waits until the output has been transferred back to the host and frees the space on the coprocessor.

SUBROUTINE async_example(my_data, my_result, cnt)
   INTEGER cnt
   INTEGER my_data[cnt], my_result[cnt]
   INTEGER(INT_PTR_KIND()) my_data_loc, my_result_loc
   my_data_loc = LOC(my_data)
   my_result_loc = LOC(my_result)
   !DIR$ OFFLOAD_TRANSFER TARGET(mic:0)                                &
      IN(my_data : LENGTH(cnt) ALLOC_IF(.true.) FREE_IF(.false.))      &
      NOCOPY(my_result : LENGTH(cnt) ALLOC_IF(.true.) FREE_IF(.false.))&
    ...do some work on the host here...
   !DIR$ OFFLOAD BEGIN TARGET(mic:0) WAIT(my_data_loc) SIGNAL(my_result_loc) &
      NOCOPY(my_data : ALLOC_IF(.false.) FREE_IF(.false.))                     &
      OUT(my_result : ALLOC_IF(.false.) FREE_IF(.false.))
   ...do your offloaded work here...
    ...do some work on the host here...
   !DIR$ OFFLOAD_TRANSFER TARGET(mic:0) WAIT(my_result_loc)                &
      NOCOPY(my_data, my_result : ALLOC_IF(.false.) FREE_IF(.true.))
END SUBROUTINE async_example


Vectorizable Functions and Subroutines

The Intel Fortran Compiler provides a method for writing vectorizable functions and subroutines. Known as SIMD-enabled functions and subroutines, they are written using the vector attribute:

SUBROUTINE MY_SIMD_ROUTINE(dummy1, dummy2, etc)

These types of procedures can be used on the Intel Xeon Phi coprocessor as well as the Intel Xeon processor.

For code which is run in offload mode, a vectorizable function or subroutine must have the offload attribute, the same as for any other procedure. 

When using the vector attribute, it is not necessary to add the vector attribute directive to both the procedure definition and to the procedure call if both are in the same file.  However, it is not an error to do so. When the procedure definition and procedure call exist in separate files, the vector attribute directive must be used in both locations. For the offload attribute, the offload attribute directive must always be specified both in the procedure definition and before the procedure call. Therefore the following is recommended when using the vector attribute:

1) Add the offload attribute to the attributes directive:


If desired, you can also add the architecture type to the vector attribute. If you do so, be sure to specify the architecture for both the processor and the coprocessor:


2) Place the directive immediately after the SUBROUTINE or FUNCTION statement and inside each procedure that calls this SUBROUTINE or FUNCTION.

Array Notation

Much of the documentation for array notation on the coprocessor uses Intel CilkPlus array notation. Fortran programmers should take heart - the version of array notation in Fortran uses the Fortran standard array notation, not the Intel CilkPlus array notation. Therefore, in the offload statement

 !dir$ offload begin in(foo(1:6:2))

 the meaning of foo(1:6:2) is: from element 1 to element 6 with a stride of 2, as a Fortran programmer would expect.

Blackberry, Latest Technology
Latest Technology, Logitech
Latest Technology, NVIDIA

How a Frequent-Flying, Superstar DJ Travels With SHIELD

erockpeekEditor’s note:  Eric Nagrampa has been spinning records since vinyl was the only option. Known professionally as DJ E-Rock, Nagrampa worked his way up from his garage to radio, where he hosts Club 997 on the San Francisco Bay Area’s Movin 99.7. He’s now taking on the hottest clubs from around the country with residencies… Read More
Google, Latest Technology

Pediatric Home Service puts patient care at nurses’ fingertips with Google Apps and Chromebooks

Posted by Rick Mueller, IT Manager for Pediatric Home Service

Editor's note: Our guest blogger is Rick Mueller, IT Manager for Pediatric Home Service, a provider of in-home nursing and medical care for medically-complex children based in Roseville, Minnesota. See what other organizations that have gone Google have to say.

Pediatric Home Service started offering in-home respiratory care for medically-complex children 23 years ago. Our founder, Susan Wingert, understood that kids thrive at home, not in the hospital, so we brought the medical care to them. Since then, we’ve expanded our services to include infusion therapy, pharmacy, nutrition, education, social work, and most recently private duty nursing. We help care for more than 3,400 children in Minnesota and western Wisconsin.

Over half of the 330 people on staff are skilled clinicians and nurses who spend their days in patient homes. Our clinicians do 99% of their charting and reporting electronically, so they need to securely access records right from the patient’s home in real-time. We used to install Windows laptops in some private duty nursing patient homes so nurses could log onto our records system, but that was costly and cumbersome.

When it was time to upgrade our old Microsoft Exchange Server two years ago, we looked at several options, and quickly realized moving to Google Apps would be the most secure, scalable and cost effective solution for our growing organization. We launched Apps in September 2011, starting with Gmail, Chat, Contacts and Calendar. During the rollout, we used the Google Guides program, where we trained a few power users who in turn helped their colleagues learn the ropes of Google Apps.

All of our employees loved Google Apps, so when it came time to upgrade the Windows laptops in the field, we replaced them with Chromebooks, including models from Acer and Samsung. The Chromebooks put critical information, including charts, medication lists and treatments, at the nurses’ fingertips. Many of them are installed in patient homes, enabling our private duty nurses to check Gmail as well as update charts in our Windows-based patient records system via Citrix.

From a cost perspective, we’ve saved over $17,000 buying the Chromebooks versus Windows laptops, but the real savings is ongoing. So far, we have saved at least $50,000 in soft costs due to decreased management and upkeep, and expect those savings to continue.

We plan to buy more Chromebooks and deploy them in our headquarters, our warehouse and among the facility staff. The IT team are all converts because Chromebooks require almost zero maintenance. We use the Management Console to remotely lock machines, get full visibility into usage and configure on-site wireless access. Chromebooks take 10 minutes to set up, and we spend 1/10th as much time maintaining Chromebooks as we do our Windows laptops.

Our nurses and clinicians have one top priority: taking care of the child. They don’t want to fiddle around with technology; they want technology that just works, and with Chromebooks, they’re empowered to better help kids and families thrive at home.
Latest Technology, Misc. Mobile Phones

Nokia wins patent suit against HTC, about to ban One mini in UK

HTC just can't catch a break these days. The company has been in rough financial shape for a while now, despite churning out stellar products like the HTC One. One of the company's biggest threats is Nokia, which coincidentally has one of the biggest ...
Latest Technology

Apple acquires Twitter’s social media analytics firm Topsy


December 3, 2013, 5:54 IST

Silky Malhotra

Apple acquires Twitter's social media analytics firm Topsy

Social media analytics company Topsy that uses tweets to determine consumer attitudes has been acquired by Apple Inc for $200 million. Topsy is one of the few companies that has access to Twitter's full stream of data since it began.

Topsy was founded in 2007 by Vipul Ved Prakash its current COO, along with Rishab Aiyer Ghosh, Justin Foutts and Gary Iwatani. Topsy has over a dozen patents related to social networks including systems and methods for prediction-based crawling of social media networks and for customized filtering and analysis of social media content collected over social networks. The company is one of the few with Twitter firehose access, and is also one of its first Certified Product partners.

The company recently announced the launch of a search engine for tweets that can search over 400 billion tweets sent since Twitter was first launched. Twitter itself doesn't have a way to do that yet and the company relied on Topsy for all such data.

According to Techcrunch, Apple may use the firm to analyse tweets to recommend apps to users on a more personal basis or to help advertisers display ads to more relevant viewers. An Apple spokeswoman confirmed the deal but wouldn't comment further. "Apple buys smaller technology companies from time to time, and we generally do not discuss our purpose or plans," she said.

Apple has recently acquired Israel-based company PrimeSense, that focused on 3-D sensor technology, for close to $360 million. A spokeswoman for PrimeSense confirmed the deal. PrimeSense is known for its work in sensor technology with Microsoft’s Kinect gaming product, that utilizes cameras and depth sensors to capture players’ motions and incorporate them into Xbox game play. According to reports the Apple may use the company's technology in its smart watch or the rumored Apple TV.

Source: Techcrunch

Nokia presents idea to app contest: Nokia Lumia 920, Nokia Lumia 820, reward points to be won... Come Get Yours

Latest Technology, Misc. Gadgets
Latest Technology, Misc. Mobile Phones

CyanogenMod 10.2 final version is now available for download

The final and stable version of CyanogenMod 10.2 is ready for prime time. The developer team behind the most popular Android ROM is now shifting its focus primarily on CyanogenMod 11, which will bring Android 4.4 KitKat to the CM masses.

The CyanogenMod team will also continue to provide hot fixes and security patches as they are needed. This is quite an important milestone for them as this stable CM 10.2 release marks the end of Jelly Bean-based development.

CynogenMod 11 is currently in active development and there’s even a ROM available for the Samsung Galaxy S4. As a result of the active development that the team is doing, they’ll soon be stopping work on the ICS CM nightly branches as well.

Thanks to CyanogenMod 10.2, quite a few devices will be able to enjoy the benefits of Android 4.3 Jelly Bean whereas otherwise they’d be stuck on releases going as far back as ICS.

Source | Via